home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / lang / f2c_amiga1.lha / f2c-1993.04.28amiga / source-patches / patches-for-src < prev   
Text File  |  1993-12-01  |  161KB  |  4,596 lines

  1. diff -c ORIG-src/gram.c src/gram.c
  2. *** ORIG-src/gram.c    Wed Apr 28 07:07:31 1993
  3. --- src/gram.c    Wed Nov 17 11:44:08 1993
  4. ***************
  5. *** 1,104 ****
  6. - # define SEOS 1
  7. - # define SCOMMENT 2
  8. - # define SLABEL 3
  9. - # define SUNKNOWN 4
  10. - # define SHOLLERITH 5
  11. - # define SICON 6
  12. - # define SRCON 7
  13. - # define SDCON 8
  14. - # define SBITCON 9
  15. - # define SOCTCON 10
  16. - # define SHEXCON 11
  17. - # define STRUE 12
  18. - # define SFALSE 13
  19. - # define SNAME 14
  20. - # define SNAMEEQ 15
  21. - # define SFIELD 16
  22. - # define SSCALE 17
  23. - # define SINCLUDE 18
  24. - # define SLET 19
  25. - # define SASSIGN 20
  26. - # define SAUTOMATIC 21
  27. - # define SBACKSPACE 22
  28. - # define SBLOCK 23
  29. - # define SCALL 24
  30. - # define SCHARACTER 25
  31. - # define SCLOSE 26
  32. - # define SCOMMON 27
  33. - # define SCOMPLEX 28
  34. - # define SCONTINUE 29
  35. - # define SDATA 30
  36. - # define SDCOMPLEX 31
  37. - # define SDIMENSION 32
  38. - # define SDO 33
  39. - # define SDOUBLE 34
  40. - # define SELSE 35
  41. - # define SELSEIF 36
  42. - # define SEND 37
  43. - # define SENDFILE 38
  44. - # define SENDIF 39
  45. - # define SENTRY 40
  46. - # define SEQUIV 41
  47. - # define SEXTERNAL 42
  48. - # define SFORMAT 43
  49. - # define SFUNCTION 44
  50. - # define SGOTO 45
  51. - # define SASGOTO 46
  52. - # define SCOMPGOTO 47
  53. - # define SARITHIF 48
  54. - # define SLOGIF 49
  55. - # define SIMPLICIT 50
  56. - # define SINQUIRE 51
  57. - # define SINTEGER 52
  58. - # define SINTRINSIC 53
  59. - # define SLOGICAL 54
  60. - # define SNAMELIST 55
  61. - # define SOPEN 56
  62. - # define SPARAM 57
  63. - # define SPAUSE 58
  64. - # define SPRINT 59
  65. - # define SPROGRAM 60
  66. - # define SPUNCH 61
  67. - # define SREAD 62
  68. - # define SREAL 63
  69. - # define SRETURN 64
  70. - # define SREWIND 65
  71. - # define SSAVE 66
  72. - # define SSTATIC 67
  73. - # define SSTOP 68
  74. - # define SSUBROUTINE 69
  75. - # define STHEN 70
  76. - # define STO 71
  77. - # define SUNDEFINED 72
  78. - # define SWRITE 73
  79. - # define SLPAR 74
  80. - # define SRPAR 75
  81. - # define SEQUALS 76
  82. - # define SCOLON 77
  83. - # define SCOMMA 78
  84. - # define SCURRENCY 79
  85. - # define SPLUS 80
  86. - # define SMINUS 81
  87. - # define SSTAR 82
  88. - # define SSLASH 83
  89. - # define SPOWER 84
  90. - # define SCONCAT 85
  91. - # define SAND 86
  92. - # define SOR 87
  93. - # define SNEQV 88
  94. - # define SEQV 89
  95. - # define SNOT 90
  96. - # define SEQ 91
  97. - # define SLT 92
  98. - # define SGT 93
  99. - # define SLE 94
  100. - # define SGE 95
  101. - # define SNE 96
  102. - # define SENDDO 97
  103. - # define SWHILE 98
  104. - # define SSLASHD 99
  105.   
  106. ! /* # line 124 "gram.in" */
  107.   #include "defs.h"
  108.   #include "p1defs.h"
  109.   
  110. --- 1,111 ----
  111.   
  112. ! /*  A Bison parser, made from gram.y with Bison version GNU Bison version 1.21
  113. !   */
  114. ! #define YYBISON 1  /* Identify Bison output.  */
  115. ! #define    SEOS    1
  116. ! #define    SCOMMENT    2
  117. ! #define    SLABEL    3
  118. ! #define    SUNKNOWN    4
  119. ! #define    SHOLLERITH    5
  120. ! #define    SICON    6
  121. ! #define    SRCON    7
  122. ! #define    SDCON    8
  123. ! #define    SBITCON    9
  124. ! #define    SOCTCON    10
  125. ! #define    SHEXCON    11
  126. ! #define    STRUE    12
  127. ! #define    SFALSE    13
  128. ! #define    SNAME    14
  129. ! #define    SNAMEEQ    15
  130. ! #define    SFIELD    16
  131. ! #define    SSCALE    17
  132. ! #define    SINCLUDE    18
  133. ! #define    SLET    19
  134. ! #define    SASSIGN    20
  135. ! #define    SAUTOMATIC    21
  136. ! #define    SBACKSPACE    22
  137. ! #define    SBLOCK    23
  138. ! #define    SCALL    24
  139. ! #define    SCHARACTER    25
  140. ! #define    SCLOSE    26
  141. ! #define    SCOMMON    27
  142. ! #define    SCOMPLEX    28
  143. ! #define    SCONTINUE    29
  144. ! #define    SDATA    30
  145. ! #define    SDCOMPLEX    31
  146. ! #define    SDIMENSION    32
  147. ! #define    SDO    33
  148. ! #define    SDOUBLE    34
  149. ! #define    SELSE    35
  150. ! #define    SELSEIF    36
  151. ! #define    SEND    37
  152. ! #define    SENDFILE    38
  153. ! #define    SENDIF    39
  154. ! #define    SENTRY    40
  155. ! #define    SEQUIV    41
  156. ! #define    SEXTERNAL    42
  157. ! #define    SFORMAT    43
  158. ! #define    SFUNCTION    44
  159. ! #define    SGOTO    45
  160. ! #define    SASGOTO    46
  161. ! #define    SCOMPGOTO    47
  162. ! #define    SARITHIF    48
  163. ! #define    SLOGIF    49
  164. ! #define    SIMPLICIT    50
  165. ! #define    SINQUIRE    51
  166. ! #define    SINTEGER    52
  167. ! #define    SINTRINSIC    53
  168. ! #define    SLOGICAL    54
  169. ! #define    SNAMELIST    55
  170. ! #define    SOPEN    56
  171. ! #define    SPARAM    57
  172. ! #define    SPAUSE    58
  173. ! #define    SPRINT    59
  174. ! #define    SPROGRAM    60
  175. ! #define    SPUNCH    61
  176. ! #define    SREAD    62
  177. ! #define    SREAL    63
  178. ! #define    SRETURN    64
  179. ! #define    SREWIND    65
  180. ! #define    SSAVE    66
  181. ! #define    SSTATIC    67
  182. ! #define    SSTOP    68
  183. ! #define    SSUBROUTINE    69
  184. ! #define    STHEN    70
  185. ! #define    STO    71
  186. ! #define    SUNDEFINED    72
  187. ! #define    SWRITE    73
  188. ! #define    SLPAR    74
  189. ! #define    SRPAR    75
  190. ! #define    SEQUALS    76
  191. ! #define    SCOLON    77
  192. ! #define    SCOMMA    78
  193. ! #define    SCURRENCY    79
  194. ! #define    SPLUS    80
  195. ! #define    SMINUS    81
  196. ! #define    SSTAR    82
  197. ! #define    SSLASH    83
  198. ! #define    SPOWER    84
  199. ! #define    SCONCAT    85
  200. ! #define    SAND    86
  201. ! #define    SOR    87
  202. ! #define    SNEQV    88
  203. ! #define    SEQV    89
  204. ! #define    SNOT    90
  205. ! #define    SEQ    91
  206. ! #define    SLT    92
  207. ! #define    SGT    93
  208. ! #define    SLE    94
  209. ! #define    SGE    95
  210. ! #define    SNE    96
  211. ! #define    SENDDO    97
  212. ! #define    SWHILE    98
  213. ! #define    SSLASHD    99
  214. ! #line 123 "gram.y"
  215.   #include "defs.h"
  216.   #include "p1defs.h"
  217.   
  218. ***************
  219. *** 150,157 ****
  220.       }
  221.   
  222.   
  223. ! /* # line 178 "gram.in" */
  224. ! typedef union     {
  225.       int ival;
  226.       ftnint lval;
  227.       char *charpval;
  228. --- 157,164 ----
  229.       }
  230.   
  231.   
  232. ! #line 178 "gram.y"
  233. ! typedef union    {
  234.       int ival;
  235.       ftnint lval;
  236.       char *charpval;
  237. ***************
  238. *** 163,875 ****
  239.       struct Eqvchain *eqvval;
  240.       Extsym *extval;
  241.       } YYSTYPE;
  242. ! #define yyclearin yychar = -1
  243. ! #define yyerrok yyerrflag = 0
  244. ! extern int yychar;
  245. ! typedef int yytabelem;
  246. ! extern yytabelem yyerrflag;
  247. ! #ifndef YYMAXDEPTH
  248. ! #define YYMAXDEPTH 150
  249.   #endif
  250. - YYSTYPE yylval, yyval;
  251. - # define YYERRCODE 256
  252. - yytabelem yyexca[] ={
  253. - -1, 1,
  254. -     0, -1,
  255. -     -2, 0,
  256. - -1, 20,
  257. -     1, 38,
  258. -     -2, 228,
  259. - -1, 24,
  260. -     1, 42,
  261. -     -2, 228,
  262. - -1, 122,
  263. -     6, 240,
  264. -     -2, 228,
  265. - -1, 150,
  266. -     1, 244,
  267. -     -2, 188,
  268. - -1, 174,
  269. -     1, 265,
  270. -     78, 265,
  271. -     -2, 188,
  272. - -1, 223,
  273. -     77, 173,
  274. -     -2, 139,
  275. - -1, 245,
  276. -     74, 228,
  277. -     -2, 225,
  278. - -1, 271,
  279. -     1, 286,
  280. -     -2, 143,
  281. - -1, 275,
  282. -     1, 295,
  283. -     78, 295,
  284. -     -2, 145,
  285. - -1, 328,
  286. -     77, 174,
  287. -     -2, 141,
  288. - -1, 358,
  289. -     1, 267,
  290. -     14, 267,
  291. -     74, 267,
  292. -     78, 267,
  293. -     -2, 189,
  294. - -1, 436,
  295. -     91, 0,
  296. -     92, 0,
  297. -     93, 0,
  298. -     94, 0,
  299. -     95, 0,
  300. -     96, 0,
  301. -     -2, 153,
  302. - -1, 453,
  303. -     1, 289,
  304. -     78, 289,
  305. -     -2, 143,
  306. - -1, 455,
  307. -     1, 291,
  308. -     78, 291,
  309. -     -2, 143,
  310. - -1, 457,
  311. -     1, 293,
  312. -     78, 293,
  313. -     -2, 143,
  314. - -1, 459,
  315. -     1, 296,
  316. -     78, 296,
  317. -     -2, 144,
  318. - -1, 504,
  319. -     78, 289,
  320. -     -2, 143,
  321. -     };
  322. - # define YYNPROD 301
  323. - # define YYLAST 1346
  324. - yytabelem yyact[]={
  325. -  237, 274, 471, 317, 316, 412, 420, 297, 470, 399,
  326. -  413, 397, 386, 357, 398, 266, 128, 356, 273, 252,
  327. -  292,   5, 116, 295, 326, 303, 222,  99, 184, 121,
  328. -  195, 229,  17, 203, 270, 304, 313, 199, 201, 118,
  329. -   94, 202, 396, 104, 210, 183, 236, 101, 106, 234,
  330. -  264, 103, 111, 336, 260,  95,  96,  97, 165, 166,
  331. -  334, 335, 336, 395, 105, 311, 309, 190, 130, 131,
  332. -  132, 133, 120, 135, 119, 114, 157, 129, 157, 475,
  333. -  103, 272, 334, 335, 336, 396, 521, 103, 278, 483,
  334. -  535, 165, 166, 334, 335, 336, 342, 341, 340, 339,
  335. -  338, 137, 343, 345, 344, 347, 346, 348, 450, 258,
  336. -  259, 260, 539, 165, 166, 258, 259, 260, 261, 525,
  337. -  102, 522, 155, 409, 155, 186, 187, 103, 408, 117,
  338. -  165, 166, 258, 259, 260, 318, 100, 527, 484, 188,
  339. -  446, 185, 480, 230, 240, 240, 194, 193, 290, 120,
  340. -  211, 119, 462, 481, 157, 294, 482, 257, 157, 243,
  341. -  468, 214, 463, 469, 461, 464, 460, 239, 241, 220,
  342. -  215, 218, 157, 219, 213, 165, 166, 334, 335, 336,
  343. -  342, 341, 340, 157, 371, 452, 343, 345, 344, 347,
  344. -  346, 348, 443, 428, 377, 294, 102, 102, 102, 102,
  345. -  155, 189, 447, 149, 155, 446, 192, 103,  98, 196,
  346. -  197, 198, 277, 376, 320, 321, 206, 288, 155, 289,
  347. -  300, 375, 299, 324, 315, 328, 275, 275, 330, 155,
  348. -  310, 333, 196, 216, 217, 350, 269, 207, 308, 352,
  349. -  353, 333, 100, 177, 354, 349, 323, 112, 245, 257,
  350. -  247, 110, 157, 417, 286, 287, 418, 362, 157, 157,
  351. -  157, 157, 157, 257, 257, 109, 108, 268, 279, 280,
  352. -  281, 265, 107, 355,   4, 333, 427, 465, 378, 370,
  353. -  170, 172, 176, 257, 165, 166, 258, 259, 260, 261,
  354. -  102, 406, 232, 293, 407, 381, 422, 390, 155, 400,
  355. -  391, 223, 419, 422, 155, 155, 155, 155, 155, 117,
  356. -  221, 314, 392, 319, 387, 359, 372, 196, 360, 373,
  357. -  374, 333, 333, 536, 350, 333, 275, 250, 424, 333,
  358. -  405, 333, 410, 532, 230, 432, 433, 434, 435, 436,
  359. -  437, 438, 439, 440, 441, 403, 331, 156, 401, 332,
  360. -  531, 333, 530, 333, 333, 333, 388, 526, 380, 529,
  361. -  524, 157, 257, 333, 431, 492, 257, 257, 257, 257,
  362. -  257, 382, 383, 235, 426, 384, 358, 494, 296, 333,
  363. -  448, 165, 166, 258, 259, 260, 261, 451, 165, 166,
  364. -  258, 259, 260, 261, 103, 445, 472, 400, 421, 191,
  365. -  402, 196, 103, 150, 307, 174, 285, 155, 474, 246,
  366. -  476, 416, 467, 466, 242, 226, 223, 200, 212, 136,
  367. -  209, 486, 171, 488, 490, 275, 275, 275, 141, 240,
  368. -  496, 429, 329, 333, 333, 333, 333, 333, 333, 333,
  369. -  333, 333, 333, 403, 497, 479, 401, 403, 487, 154,
  370. -  257, 154, 495, 493, 306, 485, 502, 454, 456, 458,
  371. -  500, 491, 268, 499, 505, 506, 507, 103, 451, 271,
  372. -  271, 472,  30, 333, 414, 501, 400, 508, 511, 509,
  373. -  387, 244, 208, 510, 516, 514, 515, 333, 517, 333,
  374. -  513, 333, 520, 293, 518, 225, 240, 333, 402, 523,
  375. -   92, 248, 402, 528,   6, 262, 123, 249,  81,  80,
  376. -  275, 275, 275,  79, 534, 533, 479,  78, 173, 263,
  377. -  314,  77, 403,  76, 537, 401, 351, 154,  75, 333,
  378. -  282, 154,  60,  49,  48, 333,  45,  33, 333, 538,
  379. -  113, 205, 454, 456, 458, 154, 267, 165, 166, 334,
  380. -  335, 336, 342, 540, 503, 411, 154, 204, 394, 393,
  381. -  298, 478, 503, 503, 503, 134, 389, 312, 115, 379,
  382. -   26,  25,  24,  23, 302,  22, 305, 402,  21, 385,
  383. -  284,   9, 503,   8,   7,   2, 519, 301,  20, 319,
  384. -  164,  51, 489, 291, 228, 327, 325, 415,  91, 361,
  385. -  255,  53, 337,  19,  55, 365, 366, 367, 368, 369,
  386. -   37, 224,   3,   1,   0, 351,   0,   0,   0,   0,
  387. -    0,   0,   0,   0,   0, 154,   0,   0,   0,   0,
  388. -    0, 154, 154, 154, 154, 154,   0,   0,   0, 267,
  389. -    0, 512, 267, 267, 165, 166, 334, 335, 336, 342,
  390. -  341, 340, 339, 338,   0, 343, 345, 344, 347, 346,
  391. -  348, 165, 166, 334, 335, 336, 342, 341, 453, 455,
  392. -  457,   0, 343, 345, 344, 347, 346, 348,   0,   0,
  393. -  305,   0, 459,   0,   0,   0,   0, 165, 166, 334,
  394. -  335, 336, 342, 341, 340, 339, 338, 351, 343, 345,
  395. -  344, 347, 346, 348, 444,   0,   0,   0, 449, 165,
  396. -  166, 334, 335, 336, 342, 341, 340, 339, 338,   0,
  397. -  343, 345, 344, 347, 346, 348, 165, 166, 334, 335,
  398. -  336, 342,   0,   0, 154,   0, 498, 343, 345, 344,
  399. -  347, 346, 348,   0,   0, 267,   0,   0,   0,   0,
  400. -    0, 442,   0, 504, 455, 457, 165, 166, 334, 335,
  401. -  336, 342, 341, 340, 339, 338,   0, 343, 345, 344,
  402. -  347, 346, 348,   0,   0,   0,   0,   0,   0, 430,
  403. -    0, 477,   0, 305, 165, 166, 334, 335, 336, 342,
  404. -  341, 340, 339, 338,   0, 343, 345, 344, 347, 346,
  405. -  348, 423,   0,   0,   0,   0, 165, 166, 334, 335,
  406. -  336, 342, 341, 340, 339, 338,   0, 343, 345, 344,
  407. -  347, 346, 348,   0,   0,   0, 267,   0,   0,   0,
  408. -    0, 165, 166, 334, 335, 336, 342, 341, 340, 339,
  409. -  338,  12, 343, 345, 344, 347, 346, 348,   0,   0,
  410. -    0,   0,   0,   0, 305,  10,  56,  46,  73,  85,
  411. -   14,  61,  70,  90,  38,  66,  47,  42,  68,  72,
  412. -   31,  67,  35,  34,  11,  87,  36,  18,  41,  39,
  413. -   28,  16,  57,  58,  59,  50,  54,  43,  88,  64,
  414. -   40,  69,  44,  89,  29,  62,  84,  13,   0,  82,
  415. -   65,  52,  86,  27,  74,  63,  15,   0,   0,  71,
  416. -   83, 160, 161, 162, 163, 169, 168, 167, 158, 159,
  417. -  103,   0, 160, 161, 162, 163, 169, 168, 167, 158,
  418. -  159, 103,   0,   0,  32, 160, 161, 162, 163, 169,
  419. -  168, 167, 158, 159, 103,   0, 160, 161, 162, 163,
  420. -  169, 168, 167, 158, 159, 103,   0, 160, 161, 162,
  421. -  163, 169, 168, 167, 158, 159, 103,   0, 160, 161,
  422. -  162, 163, 169, 168, 167, 158, 159, 103,   0,   0,
  423. -  233,   0,   0,   0,   0,   0, 165, 166, 363,   0,
  424. -  364, 233, 227,   0,   0,   0, 238, 165, 166, 231,
  425. -    0,   0,   0,   0, 233,   0,   0, 238,   0,   0,
  426. -  165, 166, 473,   0,   0, 233,   0,   0,   0,   0,
  427. -  238, 165, 166, 231,   0,   0, 233,   0,   0,   0,
  428. -    0, 238, 165, 166, 425,   0,   0, 233,   0,   0,
  429. -    0,   0, 238, 165, 166,   0,   0,   0,   0,   0,
  430. -    0,   0,   0, 238, 160, 161, 162, 163, 169, 168,
  431. -  167, 158, 159, 103,   0, 160, 161, 162, 163, 169,
  432. -  168, 167, 158, 159, 103, 160, 161, 162, 163, 169,
  433. -  168, 167, 158, 159, 103,   0,   0,   0, 160, 161,
  434. -  162, 163, 169, 168, 167, 158, 159, 103, 256,   0,
  435. -   93, 160, 161, 162, 163, 169, 168, 167, 158, 159,
  436. -  103,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  437. -    0,   0,   0, 276,   0,   0,   0,   0,   0, 165,
  438. -  166,   0, 122,   0, 322, 125, 126, 127,   0, 238,
  439. -  165, 166,   0,   0,   0,   0,   0, 138, 139,   0,
  440. -  238, 140,   0, 142, 143, 144,   0, 251, 145, 146,
  441. -  147,   0, 148, 165, 166, 253,   0, 254,   0,   0,
  442. -  153,   0,   0,   0,   0,   0, 165, 166, 151,   0,
  443. -  152, 178, 179, 180, 181, 182, 160, 161, 162, 163,
  444. -  169, 168, 167, 158, 159, 103, 160, 161, 162, 163,
  445. -  169, 168, 167, 158, 159, 103, 160, 161, 162, 163,
  446. -  169, 168, 167, 158, 159, 103, 160, 161, 162, 163,
  447. -  169, 168, 167, 158, 159, 103,   0,   0,   0,   0,
  448. -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  449. -    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  450. -    0,   0,   0,   0,   0, 251,   0,   0,   0,   0,
  451. -    0, 165, 166, 283,   0, 153,   0,   0,   0,   0,
  452. -    0, 165, 166, 175,   0, 404,   0,   0,   0,   0,
  453. -    0, 165, 166,  56,  46, 251,  85,   0,  61,   0,
  454. -   90, 165, 166,  47,  73,   0,   0,   0,  70,   0,
  455. -    0,  66,  87,   0,  68,  72,   0,  67,   0,  57,
  456. -   58,  59,  50,   0,   0,  88,   0,   0,   0,   0,
  457. -   89,   0,  62,  84,   0,  64,  82,  69,  52,  86,
  458. -    0,   0,  63,   0, 124,   0,  65,  83,   0,   0,
  459. -   74,   0,   0,   0,   0,  71 };
  460. - yytabelem yypact[]={
  461. - -1000,  18, 503, 837,-1000,-1000,-1000,-1000,-1000,-1000,
  462. -  495,-1000,-1000,-1000,-1000,-1000,-1000, 164, 453, -35,
  463. -  194, 188, 187, 173,  58, 169,  -8,  66,-1000,-1000,
  464. - -1000,-1000,-1000,1264,-1000,-1000,-1000,  -5,-1000,-1000,
  465. - -1000,-1000,-1000,-1000,-1000, 453,-1000,-1000,-1000,-1000,
  466. - -1000, 354,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  467. - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  468. - -1000,-1000,-1000,-1000,-1000,1096, 348,1191, 348, 165,
  469. - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  470. - -1000,-1000,-1000,-1000, 453, 453, 453, 453,-1000, 453,
  471. - -1000, 325,-1000,-1000, 453,-1000, -11, 453, 453, 453,
  472. -  343,-1000,-1000,-1000, 453, 159,-1000,-1000,-1000,-1000,
  473. -  468, 346,  58,-1000,-1000, 344,-1000,-1000,-1000,-1000,
  474. -   66, 453, 453, 343,-1000,-1000, 234, 342, 489,-1000,
  475. -  341, 917, 963, 963, 340, 475, 453, 335, 453,-1000,
  476. - -1000,-1000,-1000,1083,-1000,-1000, 308,1211,-1000,-1000,
  477. - -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  478. - -1000,1083, 193, 158,-1000,-1000,1049,1049,-1000,-1000,
  479. - -1000,-1000,1181, 332,-1000,-1000, 325, 325, 453,-1000,
  480. - -1000,  73, 304,-1000,  58,-1000, 304,-1000,-1000,-1000,
  481. -  453,-1000, 380,-1000, 330,1273, -17,  66, -18, 453,
  482. -  475,  37, 963,1060,-1000, 453,-1000,-1000,-1000,-1000,
  483. - -1000, 963,-1000, 963, 361,-1000, 963,-1000, 271,-1000,
  484. -  751, 475,-1000, 963,-1000,-1000,-1000, 963, 963,-1000,
  485. -  751,-1000, 963,-1000,-1000,  58, 475,-1000, 301, 240,
  486. - -1000,1211,-1000,-1000,-1000, 906,-1000,1211,1211,1211,
  487. - 1211,1211, -30, 204, 106, 388,-1000,-1000, 388, 388,
  488. - -1000, 143, 135, 116, 751,-1000,1049,-1000,-1000,-1000,
  489. - -1000,-1000, 308,-1000,-1000, 300,-1000,-1000, 325,-1000,
  490. - -1000, 222,-1000,-1000,-1000,  -5,-1000, -36,1201, 453,
  491. - -1000, 216,-1000,  45,-1000,-1000, 380, 460,-1000, 453,
  492. - -1000,-1000, 178,-1000, 226,-1000,-1000,-1000, 324, 220,
  493. -  726, 751, 952,-1000, 751, 299, 199, 115, 751, 453,
  494. -  704,-1000, 941, 963, 963, 963, 963, 963, 963, 963,
  495. -  963, 963, 963,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  496. -  676, 114, -31, 646, 629, 321, 127,-1000,-1000,-1000,
  497. - 1083,  33, 751,-1000,-1000,  27, -30, -30, -30,  50,
  498. - -1000, 388, 106, 107, 106,1049,1049,1049, 607,  88,
  499. -   86,  74,-1000,-1000,-1000,  87,-1000, 201,-1000, 304,
  500. - -1000, 113,-1000,  85, 930,-1000,1201,-1000,-1000,  -3,
  501. - 1070,-1000,-1000,-1000, 963,-1000,-1000, 453,-1000, 380,
  502. -   64,  78,-1000,   8,-1000,  60,-1000,-1000, 453, 963,
  503. -   58, 963, 963, 391,-1000, 290, 303, 963, 963,-1000,
  504. -  475,-1000,   0, -31, -31, -31, 467,  95,  95, 581,
  505. -  646, -22,-1000, 963,-1000, 475, 475,  58,-1000, 308,
  506. - -1000,-1000, 388,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  507. - 1049,1049,1049,-1000, 466, 465,  -5,-1000,-1000, 930,
  508. - -1000,-1000, 564,-1000,-1000,1201,-1000,-1000,-1000,-1000,
  509. -  380,-1000, 460, 460, 453,-1000, 751,  37,  11,  43,
  510. -  751,-1000,-1000,-1000, 963, 285, 751,  41, 282,  62,
  511. - -1000, 963, 284, 227, 282, 277, 275, 258,-1000,-1000,
  512. - -1000,-1000, 930,-1000,-1000,   7, 248,-1000,-1000,-1000,
  513. - -1000,-1000, 963,-1000,-1000, 475,-1000,-1000, 751,-1000,
  514. - -1000,-1000,-1000,-1000, 751,-1000,-1000, 751,  34, 475,
  515. - -1000 };
  516. - yytabelem yypgo[]={
  517. -    0, 613, 612,  13, 611,  81,  15,  32, 610, 604,
  518. -  603,  10,   0, 602, 601, 600,  16, 598,  35,  25,
  519. -  597, 596, 595,   3,   4, 594,  67, 593, 592,  50,
  520. -   34,  18,  26, 101,  20, 591,  30, 373,   1, 292,
  521. -   24, 347, 327,   2,   9,  14,  31,  49,  46, 590,
  522. -  588,  39,  28,  45, 587, 585, 584, 583, 581,1100,
  523. -   40, 580, 579,  12, 578, 575, 573, 572, 571, 570,
  524. -  568,  29, 567,  27, 566,  23,  41,   7,  44,   6,
  525. -   37, 565,  38, 561, 560,  11,  22,  36, 559, 558,
  526. -    8,  17,  33, 557, 555, 541,   5, 540, 472, 537,
  527. -  536, 534, 533, 532, 528, 203, 523, 521, 518, 517,
  528. -  513, 509,  88, 508, 507,  19 };
  529. - yytabelem yyr1[]={
  530. -    0,   1,   1,  55,  55,  55,  55,  55,  55,  55,
  531. -    2,  56,  56,  56,  56,  56,  56,  56,  60,  52,
  532. -   33,  53,  53,  61,  61,  62,  62,  63,  63,  26,
  533. -   26,  26,  27,  27,  34,  34,  17,  57,  57,  57,
  534. -   57,  57,  57,  57,  57,  57,  57,  57,  57,  10,
  535. -   10,  10,  74,   7,   8,   9,   9,   9,   9,   9,
  536. -    9,   9,   9,   9,   9,   9,  16,  16,  16,  50,
  537. -   50,  50,  50,  51,  51,  64,  64,  65,  65,  66,
  538. -   66,  80,  54,  54,  67,  67,  81,  82,  76,  83,
  539. -   84,  77,  77,  85,  85,  45,  45,  45,  70,  70,
  540. -   86,  86,  72,  72,  87,  36,  18,  18,  19,  19,
  541. -   75,  75,  89,  88,  88,  90,  90,  43,  43,  91,
  542. -   91,   3,  68,  68,  92,  92,  95,  93,  94,  94,
  543. -   96,  96,  11,  69,  69,  97,  20,  20,  71,  21,
  544. -   21,  22,  22,  38,  38,  38,  39,  39,  39,  39,
  545. -   39,  39,  39,  39,  39,  39,  39,  39,  39,  39,
  546. -   12,  12,  13,  13,  13,  13,  13,  13,  37,  37,
  547. -   37,  37,  32,  40,  40,  44,  44,  48,  48,  48,
  548. -   48,  48,  48,  48,  47,  49,  49,  49,  41,  41,
  549. -   42,  42,  42,  42,  42,  42,  42,  42,  58,  58,
  550. -   58,  58,  58,  58,  58,  58,  58,  99,  23,  24,
  551. -   24,  98,  98,  98,  98,  98,  98,  98,  98,  98,
  552. -   98,  98,   4, 100, 101, 101, 101, 101,  73,  73,
  553. -   35,  25,  25,  46,  46,  14,  14,  28,  28,  59,
  554. -   78,  79, 102, 103, 103, 103, 103, 103, 103, 103,
  555. -  103, 103, 103, 103, 103, 103, 103, 104, 111, 111,
  556. -  111, 106, 113, 113, 113, 108, 108, 105, 105, 114,
  557. -  114, 115, 115, 115, 115, 115, 115,  15, 107, 109,
  558. -  110, 110,  29,  29,   6,   6,  30,  30,  30,  31,
  559. -   31,  31,  31,  31,  31,   5,   5,   5,   5,   5,
  560. -  112 };
  561. - yytabelem yyr2[]={
  562. -    0,   0,   3,   2,   2,   2,   3,   3,   2,   1,
  563. -    1,   3,   4,   3,   4,   4,   5,   3,   0,   1,
  564. -    1,   0,   1,   2,   3,   1,   3,   1,   3,   0,
  565. -    2,   3,   1,   3,   1,   1,   1,   1,   1,   1,
  566. -    1,   1,   1,   1,   1,   1,   2,   1,   5,   7,
  567. -    5,   5,   0,   2,   1,   1,   1,   1,   1,   1,
  568. -    1,   1,   1,   1,   1,   1,   0,   4,   6,   3,
  569. -    4,   5,   3,   1,   3,   3,   3,   3,   3,   3,
  570. -    3,   3,   1,   3,   3,   3,   0,   6,   0,   0,
  571. -    0,   2,   3,   1,   3,   1,   2,   1,   1,   3,
  572. -    1,   1,   1,   3,   3,   2,   1,   5,   1,   3,
  573. -    0,   3,   0,   2,   3,   1,   3,   1,   1,   1,
  574. -    3,   1,   3,   3,   4,   1,   0,   2,   1,   3,
  575. -    1,   3,   1,   1,   2,   4,   1,   3,   0,   0,
  576. -    1,   1,   3,   1,   3,   1,   1,   1,   3,   3,
  577. -    3,   3,   2,   3,   3,   3,   3,   3,   2,   3,
  578. -    1,   1,   1,   1,   1,   1,   1,   1,   1,   2,
  579. -    4,   5,   5,   0,   1,   1,   1,   1,   1,   1,
  580. -    1,   1,   1,   1,   5,   1,   1,   1,   1,   3,
  581. -    1,   1,   3,   3,   3,   3,   2,   3,   1,   7,
  582. -    4,   1,   2,   2,   6,   2,   2,   5,   3,   1,
  583. -    4,   4,   5,   2,   1,   1,  10,   1,   3,   4,
  584. -    3,   3,   1,   1,   3,   3,   7,   7,   0,   1,
  585. -    3,   1,   3,   1,   2,   1,   1,   1,   3,   0,
  586. -    0,   0,   1,   2,   2,   2,   2,   2,   2,   2,
  587. -    3,   4,   4,   2,   3,   1,   3,   3,   1,   1,
  588. -    1,   3,   1,   1,   1,   1,   1,   3,   3,   1,
  589. -    3,   1,   1,   1,   2,   2,   2,   1,   3,   3,
  590. -    4,   4,   1,   3,   1,   5,   1,   1,   1,   3,
  591. -    3,   3,   3,   3,   3,   1,   3,   5,   5,   5,
  592. -    0 };
  593. - yytabelem yychk[]={
  594. - -1000,  -1, -55,  -2, 256,   3,   1, -56, -57, -58,
  595. -   18,  37,   4,  60,  23,  69,  44,  -7,  40, -10,
  596. -  -50, -64, -65, -66, -67, -68, -69,  66,  43,  57,
  597. -  -98,  33,  97, -99,  36,  35,  39,  -8,  27,  42,
  598. -   53,  41,  30,  50,  55,-100,  20,  29,-101,-102,
  599. -   48, -35,  64, -14,  49,  -9,  19,  45,  46,  47,
  600. - -103,  24,  58,  68,  52,  63,  28,  34,  31,  54,
  601. -   25,  72,  32,  21,  67,-104,-106,-107,-109,-110,
  602. - -111,-113,  62,  73,  59,  22,  65,  38,  51,  56,
  603. -   26, -17,   5, -59, -60, -60, -60, -60,  44, -73,
  604. -   78, -52, -33,  14,  78,  99, -73,  78,  78,  78,
  605. -   78, -73,  78, -97,  83, -70, -86, -33, -51,  85,
  606. -   83, -71, -59, -98,  70, -59, -59, -59, -16,  82,
  607. -  -71, -71, -71, -71, -81, -71, -37, -33, -59, -59,
  608. -  -59,  74, -59, -59, -59, -59, -59, -59, -59,-105,
  609. -  -42,  82,  84,  74, -37, -48, -41, -12,  12,  13,
  610. -    5,   6,   7,   8, -49,  80,  81,  11,  10,   9,
  611. - -105,  74,-105,-108, -42,  82,-105,  78, -59, -59,
  612. -  -59, -59, -59, -53, -52, -53, -52, -52, -60, -33,
  613. -  -26,  74, -33, -76, -51, -36, -33, -33, -33, -80,
  614. -   74, -82, -76, -92, -93, -95, -33,  78,  14,  74,
  615. -  -78, -73,  74, -78, -36, -51, -33, -33, -80, -82,
  616. -  -92,  76, -32,  74,  -4,   6,  74,  75, -25, -46,
  617. -  -38,  82, -39,  74, -47, -37, -48, -12,  90, -40,
  618. -  -38, -40,  74,  -3,   6, -33,  74, -33, -41,-114,
  619. -  -42,  74,-115,  82,  84, -15,  15, -12,  82,  83,
  620. -   84,  85, -41, -41, -29,  78,  -6, -37,  74,  78,
  621. -  -30, -39,  -5, -31, -38, -47,  74, -30,-112,-112,
  622. - -112,-112, -41,  82, -61,  74, -26, -26, -52, -71,
  623. -   75, -27, -34, -33,  82, -75,  74, -77, -84, -73,
  624. -  -75, -54, -37, -19, -18, -37,  74,  74,  -7,  83,
  625. -  -86,  83, -72, -87, -33,  -3, -24, -23,  98, -33,
  626. -  -38, -38,  74, -36, -38, -21, -40, -22, -38,  71,
  627. -  -38,  75,  78, -12,  82,  83,  84, -13,  89,  88,
  628. -   87,  86,  85,  91,  93,  92,  95,  94,  96,  -3,
  629. -  -38, -39, -38, -38, -38, -73, -91,  -3,  75,  75,
  630. -   78, -41, -38,  82,  84, -41, -41, -41, -41, -41,
  631. -   75,  78, -29, -29, -29,  78,  78,  78, -38, -39,
  632. -   -5, -31,-112,-112,  75, -62, -63,  14, -26, -74,
  633. -   75,  78, -16, -88, -89,  99,  78, -85, -45, -44,
  634. -  -12, -47, -33, -48,  74, -36,  75,  78,  83,  78,
  635. -  -19, -94, -96, -11,  14, -20, -33,  75,  78,  76,
  636. -  -79,  74,  76,  75, -79,  82,  75,  77,  78, -33,
  637. -   75, -46, -38, -38, -38, -38, -38, -38, -38, -38,
  638. -  -38, -38,  75,  78,  75,  74,  78,  75,-115, -41,
  639. -   75,  -6,  78, -39,  -5, -39,  -5, -39,  -5,  75,
  640. -   78,  78,  78,  75,  78,  76, -75, -34,  75,  78,
  641. -  -90, -43, -38,  82, -85,  82, -44, -37, -83, -18,
  642. -   78,  75,  78,  81,  78, -87, -38, -73, -38, -28,
  643. -  -38,  70,  75, -32,  74, -40, -38,  -3, -39, -91,
  644. -   -3, -73, -23, -33, -39, -23, -23, -23, -63,  14,
  645. -  -16, -90,  77, -45, -44, -77, -23, -96, -11, -33,
  646. -  -24,  75,  78, -79,  75,  78,  75,  75, -38,  75,
  647. -   75,  75,  75, -43, -38,  83,  75, -38,  -3,  78,
  648. -   -3 };
  649. - yytabelem yydef[]={
  650. -    1,  -2,   0,   0,   9,  10,   2,   3,   4,   5,
  651. -    0, 239,   8,  18,  18,  18,  18, 228,   0,  37,
  652. -   -2,  39,  40,  41,  -2,  43,  44,  45,  47, 138,
  653. -  198, 239, 201,   0, 239, 239, 239,  66, 138, 138,
  654. -  138, 138,  86, 138, 133,   0, 239, 239, 214, 215,
  655. -  239, 217, 239, 239, 239,  54, 223, 239, 239, 239,
  656. -  242, 239, 235, 236,  55,  56,  57,  58,  59,  60,
  657. -   61,  62,  63,  64,  65,   0,   0,   0,   0, 255,
  658. -  239, 239, 239, 239, 239, 258, 259, 260, 262, 263,
  659. -  264,   6,  36,   7,  21,  21,   0,   0,  18,   0,
  660. -  229,  29,  19,  20,   0,  88,   0, 229,   0,   0,
  661. -    0,  88, 126, 134,   0,  46,  98, 100, 101,  73,
  662. -    0,   0,  -2, 202, 203,   0, 205, 206,  53, 240,
  663. -    0,   0,   0,   0,  88, 126,   0, 168,   0, 213,
  664. -    0,   0, 173, 173,   0,   0,   0,   0,   0, 243,
  665. -   -2, 245, 246,   0, 190, 191,   0,   0, 177, 178,
  666. -  179, 180, 181, 182, 183, 160, 161, 185, 186, 187,
  667. -  247,   0, 248, 249,  -2, 266, 253,   0, 300, 300,
  668. -  300, 300,   0,  11,  22,  13,  29,  29,   0, 138,
  669. -   17,   0, 110,  90, 228,  72, 110,  76,  78,  80,
  670. -    0,  85,   0, 123, 125,   0,   0,   0,   0,   0,
  671. -    0,   0,   0,   0,  69,   0,  75,  77,  79,  84,
  672. -  122,   0, 169,  -2,   0, 222,   0, 218,   0, 231,
  673. -  233,   0, 143,   0, 145, 146, 147,   0,   0, 220,
  674. -  174, 221,   0, 224, 121,  -2,   0, 230, 271,   0,
  675. -  188,   0, 269, 272, 273,   0, 277,   0,   0,   0,
  676. -    0,   0, 196, 271, 250,   0, 282, 284,   0,   0,
  677. -  254,  -2, 287, 288,   0,  -2,   0, 256, 257, 261,
  678. -  278, 279, 300, 300,  12,   0,  14,  15,  29,  52,
  679. -   30,   0,  32,  34,  35,  66, 112,   0,   0,   0,
  680. -  105,   0,  82,   0, 108, 106,   0,   0, 127,   0,
  681. -   99,  74,   0, 102,   0, 241, 200, 209,   0,   0,
  682. -    0, 241,   0,  70, 211,   0,   0, 140,  -2,   0,
  683. -    0, 219,   0,   0,   0,   0,   0,   0,   0,   0,
  684. -    0,   0,   0, 162, 163, 164, 165, 166, 167, 234,
  685. -    0, 143, 152, 158,   0,   0,   0, 119,  -2, 268,
  686. -    0,   0, 274, 275, 276, 192, 193, 194, 195, 197,
  687. -  267,   0, 252,   0, 251,   0,   0,   0,   0, 143,
  688. -    0,   0, 280, 281,  23,   0,  25,  27,  16, 110,
  689. -   31,   0,  50,   0,   0,  51,   0,  91,  93,  95,
  690. -    0,  97, 175, 176,   0,  71,  81,   0,  89,   0,
  691. -    0,   0, 128, 130, 132, 135, 136,  48,   0,   0,
  692. -  228,   0,   0,   0,  67,   0, 170, 173,   0, 212,
  693. -    0, 232, 148, 149, 150, 151,  -2, 154, 155, 156,
  694. -  157, 159, 144,   0, 207,   0,   0, 228, 270, 271,
  695. -  189, 283,   0,  -2, 290,  -2, 292,  -2, 294,  -2,
  696. -    0,   0,   0,  24,   0,   0,  66,  33, 111,   0,
  697. -  113, 115, 118, 117,  92,   0,  96,  83,  90, 109,
  698. -    0, 124,   0,   0,   0, 103, 104,   0,   0, 208,
  699. -  237, 204, 241, 171, 173,   0, 142,   0, 143,   0,
  700. -  120,   0,   0, 168,  -2,   0,   0,   0,  26,  28,
  701. -   49, 114,   0,  94,  95,   0,   0, 129, 131, 137,
  702. -  199, 210,   0,  68, 172,   0, 184, 226, 227, 285,
  703. -  297, 298, 299, 116, 118,  87, 107, 238,   0,   0,
  704. -  216 };
  705. - # ifdef YYDEBUG
  706. - # include "y.debug"
  707. - # endif
  708. - # define YYFLAG -1000
  709. - # define YYERROR goto yyerrlab
  710. - # define YYACCEPT return(0)
  711. - # define YYABORT return(1)
  712. - /*    parser for yacc output    */
  713. - #ifdef YYDEBUG
  714. - int yydebug = 0; /* 1 for debugging */
  715. - #endif
  716. - YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
  717. - int yychar = -1; /* current input token number */
  718. - int yynerrs = 0;  /* number of errors */
  719. - yytabelem yyerrflag = 0;  /* error recovery flag */
  720.   
  721. ! yyparse()
  722. ! {    yytabelem yys[YYMAXDEPTH];
  723. !     int yyj, yym;
  724. !     register YYSTYPE *yypvt;
  725. !     register int yystate, yyn;
  726. !     register yytabelem *yyps;
  727. !     register YYSTYPE *yypv;
  728. !     register yytabelem *yyxi;
  729. !     yystate = 0;
  730. !     yychar = -1;
  731. !     yynerrs = 0;
  732. !     yyerrflag = 0;
  733. !     yyps= &yys[-1];
  734. !     yypv= &yyv[-1];
  735. ! yystack:    /* put a state and value onto the stack */
  736. ! #ifdef YYDEBUG
  737. !     if(yydebug >= 3)
  738. !         if(yychar < 0 || yytoknames[yychar] == 0)
  739. !             printf("char %d in %s", yychar, yystates[yystate]);
  740. !         else
  741. !             printf("%s in %s", yytoknames[yychar], yystates[yystate]);
  742.   #endif
  743. -     if( ++yyps >= &yys[YYMAXDEPTH] ) {
  744. -         yyerror( "yacc stack overflow" );
  745. -         return(1);
  746. -     }
  747. -     *yyps = yystate;
  748. -     ++yypv;
  749. -     *yypv = yyval;
  750. - yynewstate:
  751. -     yyn = yypact[yystate];
  752. -     if(yyn <= YYFLAG) goto yydefault; /* simple state */
  753. -     if(yychar<0) {
  754. -         yychar = yylex();
  755. - #ifdef YYDEBUG
  756. -         if(yydebug >= 2) {
  757. -             if(yychar <= 0)
  758. -                 printf("lex EOF\n");
  759. -             else if(yytoknames[yychar])
  760. -                 printf("lex %s\n", yytoknames[yychar]);
  761. -             else
  762. -                 printf("lex (%c)\n", yychar);
  763. -         }
  764.   #endif
  765. !         if(yychar < 0)
  766. !             yychar = 0;
  767. !     }
  768. !     if((yyn += yychar) < 0 || yyn >= YYLAST)
  769. !         goto yydefault;
  770. !     if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
  771. !         yychar = -1;
  772. !         yyval = yylval;
  773. !         yystate = yyn;
  774. !         if( yyerrflag > 0 ) --yyerrflag;
  775. !         goto yystack;
  776. !     }
  777. ! yydefault:
  778. !     /* default state action */
  779. !     if( (yyn=yydef[yystate]) == -2 ) {
  780. !         if(yychar < 0) {
  781. !             yychar = yylex();
  782. ! #ifdef YYDEBUG
  783. !             if(yydebug >= 2)
  784. !                 if(yychar < 0)
  785. !                     printf("lex EOF\n");
  786. !                 else
  787. !                     printf("lex %s\n", yytoknames[yychar]);
  788.   #endif
  789. !             if(yychar < 0)
  790. !                 yychar = 0;
  791. !         }
  792. !         /* look through exception table */
  793. !         for(yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate);
  794. !             yyxi += 2 ) ; /* VOID */
  795. !         while( *(yyxi+=2) >= 0 ){
  796. !             if( *yyxi == yychar ) break;
  797. !         }
  798. !         if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
  799. !     }
  800. !     if( yyn == 0 ){ /* error */
  801. !         /* error ... attempt to resume parsing */
  802. !         switch( yyerrflag ){
  803. !         case 0:   /* brand new error */
  804. ! #ifdef YYDEBUG
  805. !             yyerror("syntax error\n%s", yystates[yystate]);
  806. !             if(yytoknames[yychar])
  807. !                 yyerror("saw %s\n", yytoknames[yychar]);
  808. !             else if(yychar >= ' ' && yychar < '\177')
  809. !                 yyerror("saw `%c'\n", yychar);
  810. !             else if(yychar == 0)
  811. !                 yyerror("saw EOF\n");
  812. !             else
  813. !                 yyerror("saw char 0%o\n", yychar);
  814. ! #else
  815. !             yyerror( "syntax error" );
  816.   #endif
  817. ! yyerrlab:
  818. !             ++yynerrs;
  819. !         case 1:
  820. !         case 2: /* incompletely recovered error ... try again */
  821. !             yyerrflag = 3;
  822. !             /* find a state where "error" is a legal shift action */
  823. !             while ( yyps >= yys ) {
  824. !                 yyn = yypact[*yyps] + YYERRCODE;
  825. !                 if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
  826. !                     yystate = yyact[yyn];  /* simulate a shift of "error" */
  827. !                     goto yystack;
  828. !                 }
  829. !                 yyn = yypact[*yyps];
  830. !                 /* the current yyps has no shift onn "error", pop stack */
  831. ! #ifdef YYDEBUG
  832. !                 if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
  833.   #endif
  834. -                 --yyps;
  835. -                 --yypv;
  836. -             }
  837. -             /* there is no state on the stack with an error shift ... abort */
  838. - yyabort:
  839. -             return(1);
  840. -         case 3:  /* no shift yet; clobber input char */
  841. - #ifdef YYDEBUG
  842. -             if( yydebug ) {
  843. -                 printf("error recovery discards ");
  844. -                 if(yytoknames[yychar])
  845. -                     printf("%s\n", yytoknames[yychar]);
  846. -                 else if(yychar >= ' ' && yychar < '\177')
  847. -                     printf("`%c'\n", yychar);
  848. -                 else if(yychar == 0)
  849. -                     printf("EOF\n");
  850. -                 else
  851. -                     printf("char 0%o\n", yychar);
  852. -             }
  853.   #endif
  854. !             if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
  855. !             yychar = -1;
  856. !             goto yynewstate;   /* try again in the same state */
  857. !         }
  858. !     }
  859. !     /* reduction by production yyn */
  860. ! #ifdef YYDEBUG
  861. !     if(yydebug) {    char *s;
  862. !         printf("reduce %d in:\n\t", yyn);
  863. !         for(s = yystates[yystate]; *s; s++) {
  864. !             putchar(*s);
  865. !             if(*s == '\n' && *(s+1))
  866. !                 putchar('\t');
  867. !         }
  868. !     }
  869.   #endif
  870. -     yyps -= yyr2[yyn];
  871. -     yypvt = yypv;
  872. -     yypv -= yyr2[yyn];
  873. -     yyval = yypv[1];
  874. -     yym=yyn;
  875. -     /* consult goto table to find next state */
  876. -     yyn = yyr1[yyn];
  877. -     yyj = yypgo[yyn] + *yyps + 1;
  878. -     if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
  879. -     switch(yym){
  880.   
  881.   case 3:
  882. ! /* # line 226 "gram.in" */
  883.   {
  884.   /* stat:   is the nonterminal for Fortran statements */
  885.   
  886. !           lastwasbranch = NO; } break;
  887.   case 5:
  888. ! /* # line 232 "gram.in" */
  889.   { /* forbid further statement function definitions... */
  890.             if (parstate == INDATA && laststfcn != thisstno)
  891.               parstate = INEXEC;
  892.             thisstno++;
  893. !           if(yypvt[-1].labval && (yypvt[-1].labval->labelno==dorange))
  894. !             enddo(yypvt[-1].labval->labelno);
  895.             if(lastwasbranch && thislabel==NULL)
  896.               warn("statement cannot be reached");
  897.             lastwasbranch = thiswasbranch;
  898.             thiswasbranch = NO;
  899. !           if(yypvt[-1].labval)
  900.               {
  901. !             if(yypvt[-1].labval->labtype == LABFORMAT)
  902.                   err("label already that of a format");
  903.               else
  904. !                 yypvt[-1].labval->labtype = LABEXEC;
  905.               }
  906.             freetemps();
  907. !         } break;
  908.   case 6:
  909. ! /* # line 252 "gram.in" */
  910.   { if (can_include)
  911. !             doinclude( yypvt[-0].charpval );
  912.             else {
  913. !             fprintf(diagfile, "Cannot open file %s\n", yypvt[-0].charpval);
  914.               done(1);
  915.               }
  916. !         } break;
  917.   case 7:
  918. ! /* # line 260 "gram.in" */
  919. ! { if (yypvt[-2].labval)
  920.               lastwasbranch = NO;
  921.             endproc(); /* lastwasbranch = NO; -- set in endproc() */
  922. !         } break;
  923.   case 8:
  924. ! /* # line 265 "gram.in" */
  925.   { extern void unclassifiable();
  926.             unclassifiable();
  927.   
  928.   /* flline flushes the current line, ignoring the rest of the text there */
  929.   
  930. !           flline(); } break;
  931.   case 9:
  932. ! /* # line 272 "gram.in" */
  933.   { flline();  needkwd = NO;  inioctl = NO;
  934. !           yyerrok; yyclearin; } break;
  935.   case 10:
  936. ! /* # line 277 "gram.in" */
  937.   {
  938.           if(yystno != 0)
  939.               {
  940. --- 170,1454 ----
  941.       struct Eqvchain *eqvval;
  942.       Extsym *extval;
  943.       } YYSTYPE;
  944. ! #ifndef YYLTYPE
  945. ! typedef
  946. !   struct yyltype
  947. !     {
  948. !       int timestamp;
  949. !       int first_line;
  950. !       int first_column;
  951. !       int last_line;
  952. !       int last_column;
  953. !       char *text;
  954. !    }
  955. !   yyltype;
  956. ! #define YYLTYPE yyltype
  957. ! #endif
  958. ! #include <stdio.h>
  959. ! #ifndef __cplusplus
  960. ! #ifndef __STDC__
  961. ! #define const
  962. ! #endif
  963. ! #endif
  964. ! #define    YYFINAL        542
  965. ! #define    YYFLAG        -32768
  966. ! #define    YYNTBASE    102
  967. ! #define YYTRANSLATE(x) ((unsigned)(x) <= 257 ? yytranslate[x] : 217)
  968. ! static const char yytranslate[] = {     0,
  969. !      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
  970. !     13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
  971. !     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
  972. !     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
  973. !     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
  974. !     53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
  975. !     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
  976. !     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
  977. !     83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
  978. !     93,    94,    95,    96,    97,    98,    99,   100,   101,     2,
  979. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  980. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  981. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  982. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  983. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  984. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  985. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  986. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  987. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  988. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  989. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  990. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  991. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  992. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  993. !      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  994. !      2,     2,     2,     2,     2,     1,     2
  995. ! };
  996. ! #if YYDEBUG != 0
  997. ! static const short yyprhs[] = {     0,
  998. !      0,     1,     5,     8,    11,    14,    18,    22,    25,    27,
  999. !     29,    33,    38,    42,    47,    52,    58,    62,    63,    65,
  1000. !     67,    68,    70,    73,    77,    79,    83,    85,    89,    90,
  1001. !     93,    97,    99,   103,   105,   107,   109,   111,   113,   115,
  1002. !    117,   119,   121,   123,   125,   127,   130,   132,   138,   146,
  1003. !    152,   158,   159,   162,   164,   166,   168,   170,   172,   174,
  1004. !    176,   178,   180,   182,   184,   186,   187,   192,   199,   203,
  1005. !    208,   214,   218,   220,   224,   228,   232,   236,   240,   244,
  1006. !    248,   252,   254,   258,   262,   266,   267,   274,   275,   276,
  1007. !    277,   280,   284,   286,   290,   292,   295,   297,   299,   303,
  1008. !    305,   307,   309,   313,   317,   320,   322,   328,   330,   334,
  1009. !    335,   339,   340,   343,   347,   349,   353,   355,   357,   359,
  1010. !    363,   365,   369,   373,   378,   380,   381,   384,   386,   390,
  1011. !    392,   396,   398,   400,   403,   408,   410,   414,   415,   416,
  1012. !    418,   420,   424,   426,   430,   432,   434,   436,   440,   444,
  1013. !    448,   452,   455,   459,   463,   467,   471,   475,   478,   482,
  1014. !    484,   486,   488,   490,   492,   494,   496,   498,   500,   503,
  1015. !    508,   514,   520,   521,   523,   525,   527,   529,   531,   533,
  1016. !    535,   537,   539,   541,   547,   549,   551,   553,   555,   559,
  1017. !    561,   563,   567,   571,   575,   579,   582,   586,   588,   596,
  1018. !    601,   603,   606,   609,   616,   619,   622,   628,   632,   634,
  1019. !    639,   644,   650,   653,   655,   657,   668,   670,   674,   679,
  1020. !    683,   687,   689,   691,   695,   699,   707,   715,   716,   718,
  1021. !    722,   724,   728,   730,   733,   735,   737,   739,   743,   744,
  1022. !    745,   746,   748,   751,   754,   757,   760,   763,   766,   769,
  1023. !    773,   778,   783,   786,   790,   792,   796,   800,   802,   804,
  1024. !    806,   810,   812,   814,   816,   818,   820,   824,   828,   830,
  1025. !    834,   836,   838,   840,   843,   846,   849,   851,   855,   859,
  1026. !    864,   869,   871,   875,   877,   883,   885,   887,   889,   893,
  1027. !    897,   901,   905,   909,   913,   915,   919,   925,   931,   937
  1028. ! };
  1029. ! static const short yyrhs[] = {    -1,
  1030. !    102,   103,     3,     0,   104,   105,     0,   104,   117,     0,
  1031. !    104,   180,     0,   104,    20,   116,     0,   104,    39,   194,
  1032. !      0,   104,     6,     0,     1,     0,     5,     0,    62,   106,
  1033. !    109,     0,    62,   106,   109,   110,     0,    25,   106,   109,
  1034. !      0,    71,   106,   107,   113,     0,    46,   106,   107,   113,
  1035. !      0,   120,    46,   106,   107,   113,     0,    42,   107,   113,
  1036. !      0,     0,   108,     0,    16,     0,     0,   107,     0,    76,
  1037. !     77,     0,    76,   111,    77,     0,   112,     0,   111,    80,
  1038. !    112,     0,    16,     0,    16,    78,    16,     0,     0,    76,
  1039. !     77,     0,    76,   114,    77,     0,   115,     0,   114,    80,
  1040. !    115,     0,   108,     0,    84,     0,     7,     0,   118,     0,
  1041. !    124,     0,   126,     0,   127,     0,   128,     0,   131,     0,
  1042. !    154,     0,   161,     0,    68,     0,    68,   140,     0,    45,
  1043. !      0,    59,   164,    76,   142,    77,     0,   120,   188,   108,
  1044. !    164,   119,   147,   123,     0,   118,    80,   108,   147,   123,
  1045. !      0,   118,   101,   134,   136,   101,     0,     0,   121,   123,
  1046. !      0,   122,     0,    54,     0,    65,     0,    30,     0,    36,
  1047. !      0,    33,     0,    56,     0,    27,     0,    74,     0,    34,
  1048. !      0,    23,     0,    69,     0,     0,    84,   195,   167,   196,
  1049. !      0,    84,   195,    76,    84,    77,   196,     0,    29,   164,
  1050. !    144,     0,    29,   164,   125,   144,     0,   124,   188,   125,
  1051. !    188,   144,     0,   124,    80,   144,     0,    87,     0,    85,
  1052. !     16,    85,     0,    44,   164,   108,     0,   126,    80,   108,
  1053. !      0,    55,   164,   108,     0,   127,    80,   108,     0,    43,
  1054. !    164,   129,     0,   128,    80,   129,     0,    76,   130,    77,
  1055. !      0,   171,     0,   130,    80,   171,     0,    32,   132,   133,
  1056. !      0,   131,   188,   133,     0,     0,   134,   146,    85,   135,
  1057. !    136,    85,     0,     0,     0,     0,   137,   138,     0,   136,
  1058. !     80,   138,     0,   139,     0,   174,    84,   139,     0,   174,
  1059. !      0,   169,   174,     0,   176,     0,   141,     0,   140,    80,
  1060. !    141,     0,   108,     0,   125,     0,   143,     0,   142,    80,
  1061. !    143,     0,   108,    78,   167,     0,   108,   147,     0,   171,
  1062. !      0,    76,   146,    80,   182,    77,     0,   145,     0,   146,
  1063. !     80,   145,     0,     0,    76,   148,    77,     0,     0,   149,
  1064. !    150,     0,   148,    80,   150,     0,   151,     0,   167,    79,
  1065. !    151,     0,    84,     0,   167,     0,   153,     0,   152,    80,
  1066. !    153,     0,     8,     0,    52,   164,   155,     0,   154,    80,
  1067. !    155,     0,   156,    76,   158,    77,     0,   156,     0,     0,
  1068. !    157,   120,     0,   159,     0,   158,    80,   159,     0,   160,
  1069. !      0,   160,    83,   160,     0,    16,     0,    57,     0,   161,
  1070. !    162,     0,    85,   108,    85,   163,     0,   108,     0,   163,
  1071. !     80,   108,     0,     0,     0,   166,     0,   167,     0,   166,
  1072. !     80,   167,     0,   168,     0,    76,   167,    77,     0,   176,
  1073. !      0,   171,     0,   175,     0,   167,   169,   167,     0,   167,
  1074. !     84,   167,     0,   167,    85,   167,     0,   167,    86,   167,
  1075. !      0,   169,   167,     0,   167,   170,   167,     0,   167,    91,
  1076. !    167,     0,   167,    90,   167,     0,   167,    89,   167,     0,
  1077. !    167,    88,   167,     0,    92,   167,     0,   167,    87,   167,
  1078. !      0,    82,     0,    83,     0,    93,     0,    95,     0,    94,
  1079. !      0,    97,     0,    96,     0,    98,     0,   108,     0,   108,
  1080. !    172,     0,   108,    76,   165,    77,     0,   108,    76,   165,
  1081. !     77,   172,     0,    76,   173,    79,   173,    77,     0,     0,
  1082. !    167,     0,   108,     0,   175,     0,    14,     0,    15,     0,
  1083. !      7,     0,     8,     0,     9,     0,    10,     0,   177,     0,
  1084. !     76,   168,    80,   168,    77,     0,    13,     0,    12,     0,
  1085. !     11,     0,   179,     0,    76,   178,    77,     0,   171,     0,
  1086. !    175,     0,   178,   169,   178,     0,   178,    84,   178,     0,
  1087. !    178,    85,   178,     0,   178,    86,   178,     0,   169,   178,
  1088. !      0,   178,    87,   178,     0,   184,     0,    35,   194,   195,
  1089. !    153,   196,   188,   183,     0,    35,   194,   188,   183,     0,
  1090. !     99,     0,   181,   184,     0,   181,    72,     0,    38,   194,
  1091. !     76,   167,    77,    72,     0,    37,   194,     0,    41,   194,
  1092. !      0,    51,   194,    76,   167,    77,     0,   108,    78,   193,
  1093. !      0,   182,     0,   100,    76,   167,    77,     0,   186,   171,
  1094. !     78,   167,     0,    22,   194,   185,    73,   108,     0,    31,
  1095. !    194,     0,   187,     0,   197,     0,    50,   194,    76,   167,
  1096. !     77,   153,    80,   153,    80,   153,     0,   189,     0,   189,
  1097. !     76,    77,     0,   189,    76,   190,    77,     0,    66,   194,
  1098. !    173,     0,   192,   194,   173,     0,     8,     0,    21,     0,
  1099. !     47,   194,   153,     0,    48,   194,   108,     0,    48,   194,
  1100. !    108,   188,    76,   152,    77,     0,    49,   194,    76,   152,
  1101. !     77,   188,   167,     0,     0,    80,     0,    26,   194,   108,
  1102. !      0,   191,     0,   190,    80,   191,     0,   167,     0,    84,
  1103. !    153,     0,    60,     0,    70,     0,   167,     0,   193,    80,
  1104. !    167,     0,     0,     0,     0,   198,     0,   199,   204,     0,
  1105. !    199,   179,     0,   199,    84,     0,   199,    86,     0,   201,
  1106. !    204,     0,   208,   204,     0,   208,   203,     0,   208,   204,
  1107. !    211,     0,   208,   203,    80,   211,     0,   208,   204,    80,
  1108. !    211,     0,   209,   204,     0,   209,   204,   213,     0,   210,
  1109. !      0,   210,    80,   213,     0,   200,   194,   216,     0,    24,
  1110. !      0,    67,     0,    40,     0,   202,   194,   216,     0,    53,
  1111. !      0,    58,     0,    28,     0,   179,     0,    84,     0,    76,
  1112. !    178,    77,     0,    76,   205,    77,     0,   206,     0,   205,
  1113. !     80,   206,     0,   178,     0,    84,     0,    86,     0,   207,
  1114. !    167,     0,   207,    84,     0,   207,    86,     0,    17,     0,
  1115. !     64,   194,   216,     0,    75,   194,   216,     0,    61,   194,
  1116. !    178,   216,     0,    61,   194,    84,   216,     0,   212,     0,
  1117. !    211,    80,   212,     0,   171,     0,    76,   211,    80,   182,
  1118. !     77,     0,   168,     0,   215,     0,   214,     0,   168,    80,
  1119. !    168,     0,   168,    80,   215,     0,   215,    80,   168,     0,
  1120. !    215,    80,   215,     0,   214,    80,   168,     0,   214,    80,
  1121. !    215,     0,   176,     0,    76,   167,    77,     0,    76,   168,
  1122. !     80,   182,    77,     0,    76,   215,    80,   182,    77,     0,
  1123. !     76,   214,    80,   182,    77,     0,     0
  1124. ! };
  1125. ! #endif
  1126. ! #if YYDEBUG != 0
  1127. ! static const short yyrline[] = { 0,
  1128. !    221,   222,   225,   230,   231,   251,   259,   264,   271,   276,
  1129. !    304,   306,   310,   313,   315,   317,   319,   327,   331,   335,
  1130. !    339,   340,   343,   345,   348,   349,   352,   353,   356,   358,
  1131. !    361,   365,   367,   371,   376,   392,   400,   401,   402,   403,
  1132. !    404,   405,   406,   407,   408,   411,   413,   415,   419,   423,
  1133. !    427,   435,   437,   441,   447,   448,   449,   450,   451,   452,
  1134. !    453,   454,   455,   456,   457,   460,   462,   488,   492,   494,
  1135. !    496,   498,   502,   504,   508,   510,   514,   516,   520,   521,
  1136. !    524,   537,   541,   548,   549,   552,   567,   576,   578,   580,
  1137. !    581,   581,   584,   586,   590,   591,   596,   599,   600,   603,
  1138. !    610,   613,   614,   617,   624,   628,   640,   656,   662,   666,
  1139. !    668,   671,   672,   672,   675,   685,   697,   699,   702,   704,
  1140. !    708,   712,   714,   717,   718,   724,   726,   728,   729,   732,
  1141. !    734,   738,   748,   749,   752,   766,   768,   772,   794,   796,
  1142. !    800,   802,   807,   808,   810,   813,   814,   815,   817,   819,
  1143. !    821,   823,   828,   830,   833,   836,   838,   840,   842,   847,
  1144. !    848,   851,   852,   853,   854,   855,   856,   859,   861,   864,
  1145. !    866,   871,   875,   877,   880,   885,   888,   889,   890,   891,
  1146. !    892,   893,   894,   897,   901,   904,   907,   912,   913,   917,
  1147. !    918,   919,   921,   923,   925,   927,   932,   936,   937,   944,
  1148. !    949,   951,   953,   954,   956,   958,   962,   966,   970,   971,
  1149. !    975,   977,   979,   980,   981,   983,   985,   987,   989,   995,
  1150. !    997,  1001,  1005,  1014,  1016,  1018,  1020,  1028,  1029,  1032,
  1151. !   1036,  1038,  1042,  1043,  1047,  1049,  1053,  1055,  1059,  1072,
  1152. !   1076,  1081,  1085,  1086,  1088,  1090,  1092,  1093,  1095,  1097,
  1153. !   1099,  1101,  1103,  1105,  1107,  1109,  1113,  1116,  1118,  1120,
  1154. !   1124,  1127,  1129,  1131,  1135,  1141,  1149,  1154,  1158,  1159,
  1155. !   1162,  1164,  1166,  1168,  1170,  1172,  1176,  1180,  1184,  1188,
  1156. !   1195,  1204,  1206,  1210,  1212,  1216,  1218,  1220,  1223,  1225,
  1157. !   1227,  1229,  1231,  1233,  1237,  1239,  1241,  1243,  1245,  1249
  1158. ! };
  1159. ! static const char * const yytname[] = {   "$","error","$illegal.","SEOS","SCOMMENT",
  1160. ! "SLABEL","SUNKNOWN","SHOLLERITH","SICON","SRCON","SDCON","SBITCON","SOCTCON",
  1161. ! "SHEXCON","STRUE","SFALSE","SNAME","SNAMEEQ","SFIELD","SSCALE","SINCLUDE","SLET",
  1162. ! "SASSIGN","SAUTOMATIC","SBACKSPACE","SBLOCK","SCALL","SCHARACTER","SCLOSE","SCOMMON",
  1163. ! "SCOMPLEX","SCONTINUE","SDATA","SDCOMPLEX","SDIMENSION","SDO","SDOUBLE","SELSE",
  1164. ! "SELSEIF","SEND","SENDFILE","SENDIF","SENTRY","SEQUIV","SEXTERNAL","SFORMAT",
  1165. ! "SFUNCTION","SGOTO","SASGOTO","SCOMPGOTO","SARITHIF","SLOGIF","SIMPLICIT","SINQUIRE",
  1166. ! "SINTEGER","SINTRINSIC","SLOGICAL","SNAMELIST","SOPEN","SPARAM","SPAUSE","SPRINT",
  1167. ! "SPROGRAM","SPUNCH","SREAD","SREAL","SRETURN","SREWIND","SSAVE","SSTATIC","SSTOP",
  1168. ! "SSUBROUTINE","STHEN","STO","SUNDEFINED","SWRITE","SLPAR","SRPAR","SEQUALS",
  1169. ! "SCOLON","SCOMMA","SCURRENCY","SPLUS","SMINUS","SSTAR","SSLASH","SPOWER","SCONCAT",
  1170. ! "SAND","SOR","SNEQV","SEQV","SNOT","SEQ","SLT","SGT","SLE","SGE","SNE","SENDDO",
  1171. ! "SWHILE","SSLASHD","program","stat","thislabel","entry","new_proc","entryname",
  1172. ! "name","progname","progarglist","progargs","progarg","arglist","args","arg",
  1173. ! "filename","spec","dcl","new_dcl","type","typespec","typename","lengspec","common",
  1174. ! "comblock","external","intrinsic","equivalence","equivset","equivlist","data",
  1175. ! "in_data","datalist","datainit","datapop","vallist","@1","val","value","savelist",
  1176. ! "saveitem","paramlist","paramitem","var","datavar","datavarlist","dims","dimlist",
  1177. ! "@2","dim","ubound","labellist","label","implicit","implist","imptype","@3",
  1178. ! "letgroups","letgroup","letter","namelist","namelistentry","namelistlist","in_dcl",
  1179. ! "funarglist","funargs","expr","uexpr","addop","relop","lhs","substring","opt_expr",
  1180. ! "simple","simple_const","complex_const","bit_const","fexpr","unpar_fexpr","exec",
  1181. ! "logif","dospec","dospecw","iffable","assignlabel","let","goto","opt_comma",
  1182. ! "call","callarglist","callarg","stop","exprlist","end_spec","intonlyon","intonlyoff",
  1183. ! "io","io1","iofmove","fmkwd","iofctl","ctlkwd","infmt","ioctl","ctllist","ioclause",
  1184. ! "nameeq","read","write","print","inlist","inelt","outlist","out2","other","in_ioctl",
  1185. ! ""
  1186. ! };
  1187. ! #endif
  1188. ! static const short yyr1[] = {     0,
  1189. !    102,   102,   103,   103,   103,   103,   103,   103,   103,   104,
  1190. !    105,   105,   105,   105,   105,   105,   105,   106,   107,   108,
  1191. !    109,   109,   110,   110,   111,   111,   112,   112,   113,   113,
  1192. !    113,   114,   114,   115,   115,   116,   117,   117,   117,   117,
  1193. !    117,   117,   117,   117,   117,   117,   117,   117,   118,   118,
  1194. !    118,   119,   120,   121,   122,   122,   122,   122,   122,   122,
  1195. !    122,   122,   122,   122,   122,   123,   123,   123,   124,   124,
  1196. !    124,   124,   125,   125,   126,   126,   127,   127,   128,   128,
  1197. !    129,   130,   130,   131,   131,   132,   133,   134,   135,   137,
  1198. !    136,   136,   138,   138,   139,   139,   139,   140,   140,   141,
  1199. !    141,   142,   142,   143,   144,   145,   145,   146,   146,   147,
  1200. !    147,   149,   148,   148,   150,   150,   151,   151,   152,   152,
  1201. !    153,   154,   154,   155,   155,   157,   156,   158,   158,   159,
  1202. !    159,   160,   161,   161,   162,   163,   163,   164,   165,   165,
  1203. !    166,   166,   167,   167,   167,   168,   168,   168,   168,   168,
  1204. !    168,   168,   168,   168,   168,   168,   168,   168,   168,   169,
  1205. !    169,   170,   170,   170,   170,   170,   170,   171,   171,   171,
  1206. !    171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
  1207. !    175,   175,   175,   176,   177,   177,   177,   178,   178,   179,
  1208. !    179,   179,   179,   179,   179,   179,   179,   180,   180,   180,
  1209. !    180,   180,   180,   180,   180,   180,   181,   182,   183,   183,
  1210. !    184,   184,   184,   184,   184,   184,   184,   184,   184,   184,
  1211. !    184,   185,   186,   187,   187,   187,   187,   188,   188,   189,
  1212. !    190,   190,   191,   191,   192,   192,   193,   193,   194,   195,
  1213. !    196,   197,   198,   198,   198,   198,   198,   198,   198,   198,
  1214. !    198,   198,   198,   198,   198,   198,   199,   200,   200,   200,
  1215. !    201,   202,   202,   202,   203,   203,   204,   204,   205,   205,
  1216. !    206,   206,   206,   206,   206,   206,   207,   208,   209,   210,
  1217. !    210,   211,   211,   212,   212,   213,   213,   213,   214,   214,
  1218. !    214,   214,   214,   214,   215,   215,   215,   215,   215,   216
  1219. ! };
  1220. ! static const short yyr2[] = {     0,
  1221. !      0,     3,     2,     2,     2,     3,     3,     2,     1,     1,
  1222. !      3,     4,     3,     4,     4,     5,     3,     0,     1,     1,
  1223. !      0,     1,     2,     3,     1,     3,     1,     3,     0,     2,
  1224. !      3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
  1225. !      1,     1,     1,     1,     1,     2,     1,     5,     7,     5,
  1226. !      5,     0,     2,     1,     1,     1,     1,     1,     1,     1,
  1227. !      1,     1,     1,     1,     1,     0,     4,     6,     3,     4,
  1228. !      5,     3,     1,     3,     3,     3,     3,     3,     3,     3,
  1229. !      3,     1,     3,     3,     3,     0,     6,     0,     0,     0,
  1230. !      2,     3,     1,     3,     1,     2,     1,     1,     3,     1,
  1231. !      1,     1,     3,     3,     2,     1,     5,     1,     3,     0,
  1232. !      3,     0,     2,     3,     1,     3,     1,     1,     1,     3,
  1233. !      1,     3,     3,     4,     1,     0,     2,     1,     3,     1,
  1234. !      3,     1,     1,     2,     4,     1,     3,     0,     0,     1,
  1235. !      1,     3,     1,     3,     1,     1,     1,     3,     3,     3,
  1236. !      3,     2,     3,     3,     3,     3,     3,     2,     3,     1,
  1237. !      1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
  1238. !      5,     5,     0,     1,     1,     1,     1,     1,     1,     1,
  1239. !      1,     1,     1,     5,     1,     1,     1,     1,     3,     1,
  1240. !      1,     3,     3,     3,     3,     2,     3,     1,     7,     4,
  1241. !      1,     2,     2,     6,     2,     2,     5,     3,     1,     4,
  1242. !      4,     5,     2,     1,     1,    10,     1,     3,     4,     3,
  1243. !      3,     1,     1,     3,     3,     7,     7,     0,     1,     3,
  1244. !      1,     3,     1,     2,     1,     1,     1,     3,     0,     0,
  1245. !      0,     1,     2,     2,     2,     2,     2,     2,     2,     3,
  1246. !      4,     4,     2,     3,     1,     3,     3,     1,     1,     1,
  1247. !      3,     1,     1,     1,     1,     1,     3,     3,     1,     3,
  1248. !      1,     1,     1,     2,     2,     2,     1,     3,     3,     4,
  1249. !      4,     1,     3,     1,     5,     1,     1,     1,     3,     3,
  1250. !      3,     3,     3,     3,     1,     3,     5,     5,     5,     0
  1251. ! };
  1252. ! static const short yydefact[] = {     1,
  1253. !      0,     9,    10,     0,     0,     2,     8,     0,   223,   239,
  1254. !     64,   258,    18,   239,    61,   264,   138,    57,   239,    86,
  1255. !     59,    63,   239,    58,   239,   239,   239,   260,   239,     0,
  1256. !    138,   138,    47,    18,   239,   239,   239,   239,   239,   138,
  1257. !    262,    55,   138,    60,   133,   263,   138,   235,   239,    18,
  1258. !    239,    56,   239,   259,    45,    65,   236,    18,    62,   239,
  1259. !    201,     3,     4,    37,   228,    66,    54,   228,    39,    40,
  1260. !     41,   228,    43,    44,     5,     0,   198,     0,   214,   217,
  1261. !    239,   215,   242,     0,   239,     0,   239,     0,     0,   255,
  1262. !     36,     6,     0,    21,     0,     0,   213,    88,   228,   205,
  1263. !      0,     7,   206,    20,    29,    19,     0,     0,     0,     0,
  1264. !      0,     0,     0,     0,   126,     0,     0,     0,    21,   300,
  1265. !    173,     0,    73,   100,   101,    46,    98,     0,   300,     0,
  1266. !     88,    18,   229,     0,   240,    53,   229,     0,     0,     0,
  1267. !      0,    88,   126,     0,   134,   203,   202,   168,     0,     0,
  1268. !    173,   179,   180,   181,   182,   187,   186,   185,   177,   178,
  1269. !      0,   160,   161,   245,   246,     0,   190,   191,   183,     0,
  1270. !    188,   243,   300,     0,   247,   300,   266,   188,   249,   248,
  1271. !    253,     0,   222,     0,    22,    13,   230,   110,     0,    69,
  1272. !     84,     0,     0,     0,     0,     0,    17,     0,    79,    75,
  1273. !     29,   121,   224,   225,     0,     0,     0,   122,   125,     0,
  1274. !     77,     0,     0,   300,   300,   188,    11,   278,     0,     0,
  1275. !    174,   143,     0,   146,   220,   147,   145,     0,     0,    29,
  1276. !    279,   110,    90,     0,   138,     0,    72,   228,    76,    78,
  1277. !     80,    85,   123,     0,   139,   169,     0,   218,     0,   233,
  1278. !      0,   231,   221,   277,   272,   273,   271,     0,   269,     0,
  1279. !    196,     0,     0,     0,     0,     0,   257,   271,   261,     0,
  1280. !      0,     0,   284,   250,   282,     0,     0,   143,   145,   254,
  1281. !    288,   287,   256,     0,   112,   105,    70,     0,   108,     0,
  1282. !    106,     0,     0,   209,   200,   241,     0,    30,    35,    34,
  1283. !      0,    32,     0,    82,    15,     0,     0,   119,     0,     0,
  1284. !      0,   127,     0,     0,   102,     0,   281,   280,     0,    12,
  1285. !      0,   143,   158,     0,     0,     0,     0,     0,     0,     0,
  1286. !      0,   162,   164,   163,   166,   165,   167,     0,     0,   152,
  1287. !     74,    99,    14,    66,     0,     0,    29,    52,     0,   241,
  1288. !      0,     0,     0,   140,   141,     0,   211,   234,   219,     0,
  1289. !    189,   268,     0,   275,   276,   274,   193,   194,   195,   197,
  1290. !    192,   267,   251,     0,   252,     0,     0,   143,     0,     0,
  1291. !      0,     0,     0,   212,     0,     0,     0,     0,    89,     0,
  1292. !      0,   228,     0,    31,     0,    81,     0,     0,   228,     0,
  1293. !      0,   207,   132,     0,   128,   130,     0,    48,     0,   189,
  1294. !     27,    23,     0,    25,   144,     0,   149,   150,   151,   159,
  1295. !    157,   156,   155,   154,   148,   153,    50,     0,    51,     0,
  1296. !    175,    91,    93,     0,    95,   176,    97,    16,   110,     0,
  1297. !     67,    71,   136,   135,   170,     0,   173,   232,   271,   270,
  1298. !      0,   283,   144,     0,     0,     0,   143,   290,   143,   294,
  1299. !    143,   292,   111,     0,   117,   113,   115,   118,     0,   109,
  1300. !     90,     0,   237,   208,     0,   204,    33,    83,     0,     0,
  1301. !    120,     0,   124,     0,     0,   104,   103,     0,    24,     0,
  1302. !    143,    92,    96,     0,    66,   241,     0,   173,   171,   142,
  1303. !      0,   168,     0,   143,     0,     0,     0,   114,     0,     0,
  1304. !      0,   210,     0,   199,   226,   227,     0,   129,   131,    28,
  1305. !     26,   184,    94,    95,    49,    68,   137,   172,   285,   297,
  1306. !    299,   298,   116,   118,   107,    87,   238,     0,     0,   216,
  1307. !      0,     0
  1308. ! };
  1309. ! static const short yydefgoto[] = {     1,
  1310. !      4,     5,    62,    94,   185,   148,   186,   320,   413,   414,
  1311. !    197,   301,   302,    92,    63,    64,   439,    65,    66,    67,
  1312. !    136,    68,   125,    69,    70,    71,   199,   303,    72,    98,
  1313. !    191,   192,   471,   345,   346,   432,   433,   126,   127,   314,
  1314. !    315,   190,   289,   290,   286,   385,   386,   466,   467,   307,
  1315. !    308,    73,   208,   209,   210,   404,   405,   406,    74,   145,
  1316. !    444,    96,   353,   354,   277,   222,   223,   339,   224,   246,
  1317. !    356,   435,   226,   227,   169,   170,   216,    75,    76,   294,
  1318. !    295,    77,   184,    78,    79,   134,    80,   251,   252,    81,
  1319. !    474,    93,   194,   392,    82,    83,    84,    85,    86,    87,
  1320. !    179,   172,   258,   259,   260,    88,    89,    90,   274,   275,
  1321. !    280,   281,   282,   218
  1322. ! };
  1323. ! static const short yypact[] = {-32768,
  1324. !     58,-32768,-32768,    15,   833,-32768,-32768,    40,-32768,-32768,
  1325. ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1326. ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    45,
  1327. ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1328. ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1329. ! -32768,-32768,-32768,-32768,    52,-32768,-32768,-32768,-32768,-32768,
  1330. ! -32768,-32768,-32768,   -29,     2,   -22,-32768,    11,   -25,    47,
  1331. !     93,    13,   110,     3,-32768,  1083,-32768,    45,-32768,   105,
  1332. ! -32768,-32768,-32768,   948,-32768,   115,-32768,   959,   115,   122,
  1333. ! -32768,-32768,   200,    45,    45,    52,-32768,-32768,    44,-32768,
  1334. !    148,-32768,-32768,-32768,   149,-32768,   161,    45,    45,   241,
  1335. !     45,   175,   186,   212,-32768,    45,   217,  1037,    45,-32768,
  1336. !    743,   239,-32768,-32768,-32768,   209,-32768,    45,-32768,    45,
  1337. ! -32768,-32768,-32768,    45,-32768,-32768,    45,    56,    45,    45,
  1338. !    161,-32768,-32768,    45,-32768,-32768,-32768,   219,   222,   473,
  1339. !    743,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1340. !    937,-32768,-32768,-32768,-32768,   220,-32768,-32768,-32768,   333,
  1341. !    306,-32768,-32768,   937,-32768,-32768,-32768,    23,   227,     7,
  1342. !    902,   902,-32768,   237,-32768,-32768,-32768,   235,    45,-32768,
  1343. ! -32768,     8,    -1,   241,   743,    51,-32768,    45,-32768,-32768,
  1344. !    149,-32768,-32768,    78,   241,   743,   743,-32768,   244,   304,
  1345. ! -32768,    45,   220,-32768,   333,-32768,   247,-32768,   743,   743,
  1346. !   1244,-32768,   743,-32768,-32768,-32768,-32768,   228,    52,   149,
  1347. ! -32768,   235,-32768,    45,-32768,   926,-32768,   245,-32768,-32768,
  1348. ! -32768,-32768,-32768,   243,   590,-32768,   743,-32768,   241,  1244,
  1349. !     94,-32768,-32768,-32768,-32768,-32768,   101,   100,-32768,   486,
  1350. !    231,   220,   220,   220,   220,   220,-32768,   191,-32768,    60,
  1351. !     60,    60,-32768,   249,-32768,   902,  1244,    35,    37,-32768,
  1352. !    252,   255,-32768,    45,-32768,-32768,-32768,     8,-32768,    -5,
  1353. ! -32768,   260,   261,-32768,-32768,-32768,  1077,-32768,-32768,-32768,
  1354. !    112,-32768,   121,-32768,-32768,   266,   123,-32768,  1099,  1121,
  1355. !    330,-32768,   269,   173,-32768,   308,-32768,-32768,    53,-32768,
  1356. !   1143,   281,  1002,   743,   743,   743,   743,   743,   743,   743,
  1357. !    743,-32768,-32768,-32768,-32768,-32768,-32768,   743,   743,   276,
  1358. ! -32768,-32768,-32768,   -22,   -24,   232,   149,-32768,   685,  1244,
  1359. !     45,    45,   286,   287,  1207,   285,  1244,-32768,-32768,   696,
  1360. !     14,-32768,   937,-32768,-32768,  1244,   231,   231,   231,    66,
  1361. !    130,-32768,   249,   290,   249,    60,  1165,   291,   292,   294,
  1362. !    902,   902,   902,-32768,   179,   725,   295,     8,-32768,   743,
  1363. !    743,   245,   305,-32768,    28,-32768,    45,   241,   245,   241,
  1364. !    241,-32768,-32768,   183,-32768,   283,   743,-32768,    45,-32768,
  1365. !    298,-32768,   187,-32768,-32768,   743,   276,   276,   276,   197,
  1366. !   1002,  1278,  1261,  1261,   213,  1295,-32768,   232,-32768,   743,
  1367. ! -32768,-32768,-32768,   462,   296,-32768,-32768,-32768,   235,   307,
  1368. ! -32768,-32768,-32768,   301,   310,   743,   743,-32768,   333,-32768,
  1369. !     60,-32768,    38,   902,   902,   902,    39,-32768,    42,-32768,
  1370. !     43,-32768,-32768,   725,-32768,-32768,-32768,  1227,     8,-32768,
  1371. ! -32768,  1187,  1244,   302,    -1,-32768,-32768,-32768,   189,   743,
  1372. ! -32768,   316,-32768,   330,   330,  1244,-32768,   371,-32768,   381,
  1373. !    322,-32768,-32768,   232,   -22,-32768,    45,   743,-32768,  1244,
  1374. !    325,    86,   326,   210,   329,   332,   334,-32768,   725,   336,
  1375. !     46,-32768,   743,-32768,-32768,  1244,   241,-32768,-32768,-32768,
  1376. ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1377. ! -32768,-32768,-32768,  1244,-32768,-32768,  1244,   342,   241,-32768,
  1378. !    410,-32768
  1379. ! };
  1380. ! static const short yypgoto[] = {-32768,
  1381. ! -32768,-32768,-32768,   -21,    -8,   -30,   309,-32768,-32768,   -67,
  1382. !   -194,-32768,    32,-32768,-32768,-32768,-32768,   223,-32768,-32768,
  1383. !   -339,-32768,   -64,-32768,-32768,-32768,   288,-32768,-32768,-32768,
  1384. !    300,   312,-32768,   -39,-32768,    10,   -58,-32768,   211,-32768,
  1385. !     41,  -129,  -367,   156,  -229,-32768,-32768,   -17,   -57,    55,
  1386. !   -109,-32768,   313,-32768,-32768,-32768,   -33,   -20,-32768,-32768,
  1387. ! -32768,   -12,-32768,-32768,   284,  -111,    91,-32768,   455,    18,
  1388. !   -117,  -381,   -45,  -170,-32768,   -69,    73,-32768,-32768,  -309,
  1389. !     -9,   379,-32768,-32768,-32768,   -66,-32768,-32768,   132,-32768,
  1390. ! -32768,  1041,   370,  -341,-32768,-32768,-32768,-32768,-32768,-32768,
  1391. ! -32768,    81,-32768,   143,-32768,-32768,-32768,-32768,    79,  -326,
  1392. !    339,   242,  -249,  -119
  1393. ! };
  1394. ! #define    YYLAST        1393
  1395. ! static const short yytable[] = {   106,
  1396. !    203,   138,   344,   225,   427,   142,   305,   237,   441,   231,
  1397. !    279,   279,   109,   -38,   104,   -42,  -267,     6,   107,   108,
  1398. !    470,   105,   104,   104,   124,  -265,   380,   115,   119,  -267,
  1399. !    116,   189,   193,   253,   117,   343,   128,  -286,   168,  -295,
  1400. !   -296,  -289,   168,   104,  -293,  -291,    91,   132,   215,   452,
  1401. !    130,  -240,   493,   267,   139,   428,   269,   541,     2,   287,
  1402. !    104,   135,     3,   106,   187,   188,   104,   104,   411,   278,
  1403. !    278,   131,   168,   238,   388,   104,   429,   200,   106,   389,
  1404. !    204,   133,   271,   288,   296,   211,   272,   144,   106,  -267,
  1405. !    137,   257,   133,  -267,   317,   318,   261,   106,   292,   232,
  1406. !    201,   470,  -265,   235,   268,   279,   188,   322,   239,   240,
  1407. !    234,   299,   524,   244,   381,   168,  -295,  -296,  -289,   230,
  1408. !    168,  -293,  -291,   133,   452,   428,   140,   298,   168,   412,
  1409. !    536,   458,   460,   462,   299,   271,   122,   306,   123,   358,
  1410. !    122,   503,   123,   316,   505,   506,   507,   162,   163,   262,
  1411. !    263,   264,   438,  -228,   526,   525,   171,   133,   188,   510,
  1412. !    178,   245,   293,   391,   378,   300,   175,   168,   180,   181,
  1413. !    359,   351,   141,   360,   166,   437,   362,   361,   166,   363,
  1414. !    150,   313,   162,   163,   262,   263,   264,   265,   394,   143,
  1415. !    174,   395,   367,   368,   369,   370,   371,   396,   124,   399,
  1416. !    397,   182,   400,   106,   458,   460,   462,   183,   166,   495,
  1417. !    279,   279,   279,   262,   263,   264,   168,   168,   168,   168,
  1418. !    168,   442,   348,   195,   196,   347,   152,   153,   154,   155,
  1419. !    156,   157,   158,   159,   160,   104,   198,   322,   152,   153,
  1420. !    154,   155,   156,   157,   158,   159,   160,   104,   202,   408,
  1421. !    205,   166,   409,   384,   228,   463,   166,   437,   464,   483,
  1422. !    266,   206,   484,   489,   166,   515,   490,   372,   400,   457,
  1423. !    459,   461,   162,   163,   262,   263,   264,   265,   162,   163,
  1424. !    324,   325,   326,   279,   279,   279,   522,   207,   229,  -289,
  1425. !    481,   482,   212,   449,   245,   213,   324,   325,   326,   247,
  1426. !    436,   162,   163,   166,   491,   266,   270,   430,  -244,   284,
  1427. !    285,   338,   341,   162,   163,   431,   264,   168,   322,   311,
  1428. !    188,   443,   319,   437,   133,   475,    11,   352,   376,   501,
  1429. !     15,   382,   480,    18,   383,   390,    21,    22,   391,    24,
  1430. !    338,   398,   504,   459,   461,   403,   407,   266,   373,   374,
  1431. !    375,   266,   166,   166,   166,   166,   166,    42,   266,    44,
  1432. !    416,   326,   445,   447,   300,   485,   446,   338,    52,   451,
  1433. !    454,   455,    56,   456,   469,   488,   476,    59,   313,   494,
  1434. !    497,   513,   436,   496,   410,   498,   520,   338,   436,   162,
  1435. !    163,   262,   263,   264,   265,   517,   411,   431,   522,   338,
  1436. !    338,   528,   529,   431,   221,   530,   266,   538,   531,   542,
  1437. !    532,   338,   535,   338,   162,   163,   262,   263,   264,   265,
  1438. !    502,   539,   521,   502,   502,   502,   477,   217,   241,   540,
  1439. !    338,   511,   312,   250,   221,   523,   434,   492,   502,   342,
  1440. !    338,   242,   233,   387,   293,   338,   508,   338,   436,   487,
  1441. !    518,   533,   479,   166,   147,   243,   338,   266,   266,   266,
  1442. !    266,   266,   499,   431,   519,   514,   527,   338,   152,   153,
  1443. !    154,   155,   156,   157,   158,   159,   160,   104,   297,   152,
  1444. !    153,   154,   155,   156,   157,   158,   159,   160,   104,   309,
  1445. !    310,   448,   152,   153,   154,   155,   156,   157,   158,   159,
  1446. !    160,   104,   321,   323,   236,   450,   340,   338,   338,   338,
  1447. !    338,   338,   338,   338,   338,   338,   338,   379,   434,   350,
  1448. !    283,     0,     0,     0,     0,     0,     0,     0,   355,     0,
  1449. !    357,     0,   149,     0,     0,     0,     0,     0,   167,   266,
  1450. !      0,     0,   167,   366,     0,     0,     0,     0,   219,   248,
  1451. !      0,     0,     0,     0,   162,   163,   249,     0,   338,   377,
  1452. !      0,   219,   338,   338,   220,     0,     0,   162,   163,   364,
  1453. !      0,   365,   167,     0,     0,     0,   338,   220,     0,     0,
  1454. !      0,     0,     0,     0,   434,     0,     0,     0,     0,     0,
  1455. !    338,     0,     0,     0,     0,     0,   152,   153,   154,   155,
  1456. !    156,   157,   158,   159,   160,   104,   338,   417,   418,   419,
  1457. !    420,   421,   422,   423,   424,   167,     0,     0,     0,     0,
  1458. !    167,   425,   426,     0,   338,     0,     0,   338,   167,     0,
  1459. !      0,     0,   321,     0,   273,     0,     0,     0,     0,     0,
  1460. !      0,     0,     0,   250,     0,     0,   291,     0,     0,     0,
  1461. !      0,     0,   304,     0,     0,     0,     0,     0,     0,     0,
  1462. !      0,     0,     0,     0,     0,   219,     0,   167,  -173,   468,
  1463. !      0,   162,   163,   472,   473,     0,     0,     0,     0,     0,
  1464. !      0,   220,     0,     0,     0,     0,     0,     0,     0,     0,
  1465. !    486,   152,   153,   154,   155,   156,   157,   158,   159,   160,
  1466. !    104,     0,   152,   153,   154,   155,   156,   157,   158,   159,
  1467. !    160,   104,     0,     0,     0,     0,   167,   167,   167,   167,
  1468. !    167,     0,     0,     0,   273,   273,   273,     0,     0,   500,
  1469. !    221,   152,   153,   154,   155,   156,   157,   158,   159,   160,
  1470. !    104,     0,   291,     0,     0,     0,     0,   468,     0,   152,
  1471. !    153,   154,   155,   156,   157,   158,   159,   160,   104,     0,
  1472. !    219,     0,     0,   516,     0,     0,   162,   163,   440,     0,
  1473. !      0,   219,     0,     0,     0,     0,   220,   162,   163,   249,
  1474. !      0,   221,     0,     0,     0,     0,     0,   220,     0,     0,
  1475. !      0,     0,   534,     0,     0,     0,   537,     0,     0,     0,
  1476. !    219,     0,     0,     0,     0,     0,   162,   163,   465,     0,
  1477. !      0,     0,     0,     0,     0,     0,   220,   167,   219,     0,
  1478. !      0,     0,     0,     0,   162,   163,     0,     0,     0,     0,
  1479. !    273,     0,     0,     0,   220,     0,     0,     0,     7,     0,
  1480. !      0,     0,   291,     0,     0,     0,     0,     0,     0,     0,
  1481. !      0,   478,     8,     9,    10,    11,    12,    13,    14,    15,
  1482. !     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  1483. !     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  1484. !     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  1485. !     46,    47,    48,    49,    50,     0,    51,    52,    53,    54,
  1486. !     55,    56,    57,    58,     0,   273,    59,    60,   152,   153,
  1487. !    154,   155,   156,   157,   158,   159,   160,   104,     0,     0,
  1488. !      0,     0,     0,   291,     0,     0,     0,     0,     0,     0,
  1489. !      0,    61,   152,   153,   154,   155,   156,   157,   158,   159,
  1490. !    160,   104,     0,   152,   153,   154,   155,   156,   157,   158,
  1491. !    159,   160,   104,   254,   152,   153,   154,   155,   156,   157,
  1492. !    158,   159,   160,   104,     0,   152,   153,   154,   155,   156,
  1493. !    157,   158,   159,   160,   104,     0,     0,   276,     0,     0,
  1494. !      0,     0,     0,   162,   163,     0,     0,     0,     0,     0,
  1495. !      0,     0,     0,   220,     0,     0,     0,     0,     0,     0,
  1496. !      0,   349,     0,     0,     0,     0,     0,   162,   163,     0,
  1497. !      0,     0,   213,     0,     0,     0,     0,   220,   162,   163,
  1498. !    255,     0,   256,   161,     0,     0,     0,     0,     0,   162,
  1499. !    163,   164,     0,   165,   161,     0,     0,     0,     0,     0,
  1500. !    162,   163,   177,   152,   153,   154,   155,   156,   157,   158,
  1501. !    159,   160,   104,     0,    95,     0,     0,     0,     0,    97,
  1502. !      0,     0,     0,    99,     0,   100,   101,   102,     0,   103,
  1503. !      0,     0,     0,     0,     0,   110,   111,   112,   113,   114,
  1504. !      0,     0,     0,   162,   163,   324,   325,   326,   327,   118,
  1505. !      0,   120,     0,   121,   332,   333,   334,   335,   336,   337,
  1506. !    129,     0,     0,     9,    10,     0,    12,     0,    14,     0,
  1507. !     16,     0,   213,    19,     0,     0,     0,     0,   162,   163,
  1508. !    214,   151,    28,     0,     0,   173,     0,   176,     0,    35,
  1509. !     36,    37,    38,     0,     0,    41,     0,     0,     0,     0,
  1510. !     46,     0,    48,    49,     0,     0,    51,     0,    53,    54,
  1511. !      0,     0,    57,   393,   146,     0,     0,    60,   162,   163,
  1512. !    324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
  1513. !    333,   334,   335,   336,   337,   401,     0,     0,     0,     0,
  1514. !    162,   163,   324,   325,   326,   327,   328,   329,   330,   331,
  1515. !      0,   332,   333,   334,   335,   336,   337,   402,     0,     0,
  1516. !      0,     0,   162,   163,   324,   325,   326,   327,   328,   329,
  1517. !    330,   331,     0,   332,   333,   334,   335,   336,   337,   415,
  1518. !      0,     0,     0,     0,   162,   163,   324,   325,   326,   327,
  1519. !    328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
  1520. !    337,   453,     0,     0,     0,     0,   162,   163,   324,   325,
  1521. !    326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
  1522. !    335,   336,   337,   512,     0,     0,     0,     0,   162,   163,
  1523. !    324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
  1524. !    333,   334,   335,   336,   337,  -174,     0,     0,   162,   163,
  1525. !    324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
  1526. !    333,   334,   335,   336,   337,   509,     0,     0,   162,   163,
  1527. !    324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
  1528. !    333,   334,   335,   336,   337,   162,   163,   324,   325,   326,
  1529. !    327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
  1530. !    336,   337,   162,   163,   324,   325,   326,   327,   328,   329,
  1531. !      0,     0,     0,   332,   333,   334,   335,   336,   337,   162,
  1532. !    163,   324,   325,   326,   327,   328,     0,     0,     0,     0,
  1533. !    332,   333,   334,   335,   336,   337,   162,   163,   324,   325,
  1534. !    326,   327,     0,     0,     0,     0,     0,-32768,-32768,-32768,
  1535. ! -32768,-32768,-32768
  1536. ! };
  1537. ! static const short yycheck[] = {    30,
  1538. !    110,    68,   232,   121,   344,    72,   201,   137,   350,   129,
  1539. !    181,   182,    34,     3,    16,     3,     3,     3,    31,    32,
  1540. !    388,    30,    16,    16,    55,     3,   276,    40,    50,    16,
  1541. !     43,    96,    99,   151,    47,   230,    58,     3,    84,     3,
  1542. !      3,     3,    88,    16,     3,     3,     7,    46,   118,   376,
  1543. !     80,     8,   434,   173,    80,    80,   176,     0,     1,   189,
  1544. !     16,    84,     5,    94,    95,    96,    16,    16,    16,   181,
  1545. !    182,   101,   118,   138,    80,    16,   101,   108,   109,    85,
  1546. !    111,    80,    76,    76,   194,   116,    80,    85,   119,    76,
  1547. !     80,   161,    80,    80,   214,   215,   166,   128,   100,   130,
  1548. !    109,   469,    80,   134,   174,   276,   137,   219,   139,   140,
  1549. !    132,    84,   494,   144,    80,   161,    80,    80,    80,   128,
  1550. !    166,    80,    80,    80,   451,    80,    80,    77,   174,    77,
  1551. !     85,   381,   382,   383,    84,    76,    85,   204,    87,   249,
  1552. !     85,   451,    87,   213,   454,   455,   456,    82,    83,    84,
  1553. !     85,    86,   347,    76,   496,   495,    84,    80,   189,   469,
  1554. !     88,    76,   193,    78,   276,   196,    86,   213,    88,    89,
  1555. !     77,   238,    80,    80,    84,   346,    77,    77,    88,    80,
  1556. !     76,   212,    82,    83,    84,    85,    86,    87,    77,    80,
  1557. !     76,    80,   262,   263,   264,   265,   266,    77,   229,    77,
  1558. !     80,    80,    80,   234,   454,   455,   456,     8,   118,   439,
  1559. !    381,   382,   383,    84,    85,    86,   262,   263,   264,   265,
  1560. !    266,   351,   235,    76,    76,   234,     7,     8,     9,    10,
  1561. !     11,    12,    13,    14,    15,    16,    76,   349,     7,     8,
  1562. !      9,    10,    11,    12,    13,    14,    15,    16,     8,    77,
  1563. !     76,   161,    80,   284,    16,    77,   166,   428,    80,    77,
  1564. !    170,    76,    80,    77,   174,    77,    80,    77,    80,   381,
  1565. !    382,   383,    82,    83,    84,    85,    86,    87,    82,    83,
  1566. !     84,    85,    86,   454,   455,   456,    77,    76,    80,    80,
  1567. !    400,   401,    76,   363,    76,    76,    84,    85,    86,    78,
  1568. !    346,    82,    83,   213,   416,   215,    80,    76,     3,    73,
  1569. !     76,   221,    85,    82,    83,   346,    86,   363,   430,    76,
  1570. !    351,   352,    76,   494,    80,   392,    23,    85,    80,   447,
  1571. !     27,    80,   399,    30,    80,    76,    33,    34,    78,    36,
  1572. !    250,    76,   454,   455,   456,    16,    78,   257,   270,   271,
  1573. !    272,   261,   262,   263,   264,   265,   266,    54,   268,    56,
  1574. !     80,    86,    77,    79,   395,    83,    80,   277,    65,    80,
  1575. !     80,    80,    69,    80,    80,    78,    72,    74,   409,    84,
  1576. !     80,    80,   428,    77,    77,    76,    16,   297,   434,    82,
  1577. !     83,    84,    85,    86,    87,    80,    16,   428,    77,   309,
  1578. !    310,    77,    77,   434,   121,    77,   316,   517,    77,     0,
  1579. !     77,   321,    77,   323,    82,    83,    84,    85,    86,    87,
  1580. !    451,    80,   490,   454,   455,   456,   395,   119,   141,   539,
  1581. !    340,   471,   210,   150,   151,   494,   346,   428,   469,   229,
  1582. !    350,   142,   131,   288,   475,   355,   464,   357,   494,   409,
  1583. !    484,   509,   398,   363,    76,   143,   366,   367,   368,   369,
  1584. !    370,   371,   445,   494,   485,   475,   497,   377,     7,     8,
  1585. !      9,    10,    11,    12,    13,    14,    15,    16,   195,     7,
  1586. !      8,     9,    10,    11,    12,    13,    14,    15,    16,   206,
  1587. !    207,   360,     7,     8,     9,    10,    11,    12,    13,    14,
  1588. !     15,    16,   219,   220,   135,   363,   223,   417,   418,   419,
  1589. !    420,   421,   422,   423,   424,   425,   426,   276,   428,   236,
  1590. !    182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   245,    -1,
  1591. !    247,    -1,    78,    -1,    -1,    -1,    -1,    -1,    84,   449,
  1592. !     -1,    -1,    88,   260,    -1,    -1,    -1,    -1,    76,    77,
  1593. !     -1,    -1,    -1,    -1,    82,    83,    84,    -1,   468,   276,
  1594. !     -1,    76,   472,   473,    92,    -1,    -1,    82,    83,    84,
  1595. !     -1,    86,   118,    -1,    -1,    -1,   486,    92,    -1,    -1,
  1596. !     -1,    -1,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,
  1597. !    500,    -1,    -1,    -1,    -1,    -1,     7,     8,     9,    10,
  1598. !     11,    12,    13,    14,    15,    16,   516,   324,   325,   326,
  1599. !    327,   328,   329,   330,   331,   161,    -1,    -1,    -1,    -1,
  1600. !    166,   338,   339,    -1,   534,    -1,    -1,   537,   174,    -1,
  1601. !     -1,    -1,   349,    -1,   180,    -1,    -1,    -1,    -1,    -1,
  1602. !     -1,    -1,    -1,   360,    -1,    -1,   192,    -1,    -1,    -1,
  1603. !     -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1604. !     -1,    -1,    -1,    -1,    -1,    76,    -1,   213,    79,   386,
  1605. !     -1,    82,    83,   390,   391,    -1,    -1,    -1,    -1,    -1,
  1606. !     -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1607. !    407,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  1608. !     16,    -1,     7,     8,     9,    10,    11,    12,    13,    14,
  1609. !     15,    16,    -1,    -1,    -1,    -1,   262,   263,   264,   265,
  1610. !    266,    -1,    -1,    -1,   270,   271,   272,    -1,    -1,   446,
  1611. !    447,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  1612. !     16,    -1,   288,    -1,    -1,    -1,    -1,   464,    -1,     7,
  1613. !      8,     9,    10,    11,    12,    13,    14,    15,    16,    -1,
  1614. !     76,    -1,    -1,   480,    -1,    -1,    82,    83,    84,    -1,
  1615. !     -1,    76,    -1,    -1,    -1,    -1,    92,    82,    83,    84,
  1616. !     -1,   498,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
  1617. !     -1,    -1,   509,    -1,    -1,    -1,   513,    -1,    -1,    -1,
  1618. !     76,    -1,    -1,    -1,    -1,    -1,    82,    83,    84,    -1,
  1619. !     -1,    -1,    -1,    -1,    -1,    -1,    92,   363,    76,    -1,
  1620. !     -1,    -1,    -1,    -1,    82,    83,    -1,    -1,    -1,    -1,
  1621. !    376,    -1,    -1,    -1,    92,    -1,    -1,    -1,     6,    -1,
  1622. !     -1,    -1,   388,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1623. !     -1,   397,    20,    21,    22,    23,    24,    25,    26,    27,
  1624. !     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
  1625. !     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
  1626. !     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
  1627. !     58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
  1628. !     68,    69,    70,    71,    -1,   451,    74,    75,     7,     8,
  1629. !      9,    10,    11,    12,    13,    14,    15,    16,    -1,    -1,
  1630. !     -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,
  1631. !     -1,    99,     7,     8,     9,    10,    11,    12,    13,    14,
  1632. !     15,    16,    -1,     7,     8,     9,    10,    11,    12,    13,
  1633. !     14,    15,    16,    17,     7,     8,     9,    10,    11,    12,
  1634. !     13,    14,    15,    16,    -1,     7,     8,     9,    10,    11,
  1635. !     12,    13,    14,    15,    16,    -1,    -1,    76,    -1,    -1,
  1636. !     -1,    -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,
  1637. !     -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,
  1638. !     -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,
  1639. !     -1,    -1,    76,    -1,    -1,    -1,    -1,    92,    82,    83,
  1640. !     84,    -1,    86,    76,    -1,    -1,    -1,    -1,    -1,    82,
  1641. !     83,    84,    -1,    86,    76,    -1,    -1,    -1,    -1,    -1,
  1642. !     82,    83,    84,     7,     8,     9,    10,    11,    12,    13,
  1643. !     14,    15,    16,    -1,    14,    -1,    -1,    -1,    -1,    19,
  1644. !     -1,    -1,    -1,    23,    -1,    25,    26,    27,    -1,    29,
  1645. !     -1,    -1,    -1,    -1,    -1,    35,    36,    37,    38,    39,
  1646. !     -1,    -1,    -1,    82,    83,    84,    85,    86,    87,    49,
  1647. !     -1,    51,    -1,    53,    93,    94,    95,    96,    97,    98,
  1648. !     60,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    -1,
  1649. !     28,    -1,    76,    31,    -1,    -1,    -1,    -1,    82,    83,
  1650. !     84,    81,    40,    -1,    -1,    85,    -1,    87,    -1,    47,
  1651. !     48,    49,    50,    -1,    -1,    53,    -1,    -1,    -1,    -1,
  1652. !     58,    -1,    60,    61,    -1,    -1,    64,    -1,    66,    67,
  1653. !     -1,    -1,    70,    77,    72,    -1,    -1,    75,    82,    83,
  1654. !     84,    85,    86,    87,    88,    89,    90,    91,    -1,    93,
  1655. !     94,    95,    96,    97,    98,    77,    -1,    -1,    -1,    -1,
  1656. !     82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
  1657. !     -1,    93,    94,    95,    96,    97,    98,    77,    -1,    -1,
  1658. !     -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
  1659. !     90,    91,    -1,    93,    94,    95,    96,    97,    98,    77,
  1660. !     -1,    -1,    -1,    -1,    82,    83,    84,    85,    86,    87,
  1661. !     88,    89,    90,    91,    -1,    93,    94,    95,    96,    97,
  1662. !     98,    77,    -1,    -1,    -1,    -1,    82,    83,    84,    85,
  1663. !     86,    87,    88,    89,    90,    91,    -1,    93,    94,    95,
  1664. !     96,    97,    98,    77,    -1,    -1,    -1,    -1,    82,    83,
  1665. !     84,    85,    86,    87,    88,    89,    90,    91,    -1,    93,
  1666. !     94,    95,    96,    97,    98,    79,    -1,    -1,    82,    83,
  1667. !     84,    85,    86,    87,    88,    89,    90,    91,    -1,    93,
  1668. !     94,    95,    96,    97,    98,    79,    -1,    -1,    82,    83,
  1669. !     84,    85,    86,    87,    88,    89,    90,    91,    -1,    93,
  1670. !     94,    95,    96,    97,    98,    82,    83,    84,    85,    86,
  1671. !     87,    88,    89,    90,    91,    -1,    93,    94,    95,    96,
  1672. !     97,    98,    82,    83,    84,    85,    86,    87,    88,    89,
  1673. !     -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    82,
  1674. !     83,    84,    85,    86,    87,    88,    -1,    -1,    -1,    -1,
  1675. !     93,    94,    95,    96,    97,    98,    82,    83,    84,    85,
  1676. !     86,    87,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,
  1677. !     96,    97,    98
  1678. ! };
  1679. ! /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  1680. ! #line 3 "/s/bison.simple"
  1681. ! /* Skeleton output parser for bison,
  1682. !    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  1683. !    This program is free software; you can redistribute it and/or modify
  1684. !    it under the terms of the GNU General Public License as published by
  1685. !    the Free Software Foundation; either version 1, or (at your option)
  1686. !    any later version.
  1687. !    This program is distributed in the hope that it will be useful,
  1688. !    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1689. !    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1690. !    GNU General Public License for more details.
  1691. !    You should have received a copy of the GNU General Public License
  1692. !    along with this program; if not, write to the Free Software
  1693. !    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  1694. ! #ifndef alloca
  1695. ! #ifdef __GNUC__
  1696. ! #define alloca __builtin_alloca
  1697. ! #else /* not GNU C.  */
  1698. ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  1699. ! #include <alloca.h>
  1700. ! #else /* not sparc */
  1701. ! #if defined (MSDOS) && !defined (__TURBOC__)
  1702. ! #include <malloc.h>
  1703. ! #else /* not MSDOS, or __TURBOC__ */
  1704. ! #if defined(_AIX)
  1705. ! #include <malloc.h>
  1706. !  #pragma alloca
  1707. ! #else /* not MSDOS, __TURBOC__, or _AIX */
  1708. ! #ifdef __hpux
  1709. ! #ifdef __cplusplus
  1710. ! extern "C" {
  1711. ! void *alloca (unsigned int);
  1712. ! };
  1713. ! #else /* not __cplusplus */
  1714. ! void *alloca (unsigned int);
  1715. ! #endif /* not __cplusplus */
  1716. ! #endif /* __hpux */
  1717. ! #endif /* not _AIX */
  1718. ! #endif /* not MSDOS, or __TURBOC__ */
  1719. ! #endif /* not sparc.  */
  1720. ! #endif /* not GNU C.  */
  1721. ! #endif /* alloca not defined.  */
  1722. ! /* This is the parser code that is written into each bison parser
  1723. !   when the %semantic_parser declaration is not specified in the grammar.
  1724. !   It was written by Richard Stallman by simplifying the hairy parser
  1725. !   used when %semantic_parser is specified.  */
  1726. ! /* Note: there must be only one dollar sign in this file.
  1727. !    It is replaced by the list of actions, each action
  1728. !    as one case of the switch.  */
  1729. ! #define yyerrok        (yyerrstatus = 0)
  1730. ! #define yyclearin    (yychar = YYEMPTY)
  1731. ! #define YYEMPTY        -2
  1732. ! #define YYEOF        0
  1733. ! #define YYACCEPT    return(0)
  1734. ! #define YYABORT     return(1)
  1735. ! #define YYERROR        goto yyerrlab1
  1736. ! /* Like YYERROR except do call yyerror.
  1737. !    This remains here temporarily to ease the
  1738. !    transition to the new meaning of YYERROR, for GCC.
  1739. !    Once GCC version 2 has supplanted version 1, this can go.  */
  1740. ! #define YYFAIL        goto yyerrlab
  1741. ! #define YYRECOVERING()  (!!yyerrstatus)
  1742. ! #define YYBACKUP(token, value) \
  1743. ! do                                \
  1744. !   if (yychar == YYEMPTY && yylen == 1)                \
  1745. !     { yychar = (token), yylval = (value);            \
  1746. !       yychar1 = YYTRANSLATE (yychar);                \
  1747. !       YYPOPSTACK;                        \
  1748. !       goto yybackup;                        \
  1749. !     }                                \
  1750. !   else                                \
  1751. !     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  1752. ! while (0)
  1753. ! #define YYTERROR    1
  1754. ! #define YYERRCODE    256
  1755. ! #ifndef YYPURE
  1756. ! #define YYLEX        yylex()
  1757.   #endif
  1758.   
  1759. ! #ifdef YYPURE
  1760. ! #ifdef YYLSP_NEEDED
  1761. ! #define YYLEX        yylex(&yylval, &yylloc)
  1762. ! #else
  1763. ! #define YYLEX        yylex(&yylval)
  1764.   #endif
  1765.   #endif
  1766. ! /* If nonreentrant, generate the variables here */
  1767. ! #ifndef YYPURE
  1768. ! int    yychar;            /*  the lookahead symbol        */
  1769. ! YYSTYPE    yylval;            /*  the semantic value of the        */
  1770. !                 /*  lookahead symbol            */
  1771. ! #ifdef YYLSP_NEEDED
  1772. ! YYLTYPE yylloc;            /*  location data for the lookahead    */
  1773. !                 /*  symbol                */
  1774. ! #endif
  1775. ! int yynerrs;            /*  number of parse errors so far       */
  1776. ! #endif  /* not YYPURE */
  1777. ! #if YYDEBUG != 0
  1778. ! int yydebug;            /*  nonzero means print parse trace    */
  1779. ! /* Since this is uninitialized, it does not stop multiple parsers
  1780. !    from coexisting.  */
  1781. ! #endif
  1782. ! /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  1783. ! #ifndef    YYINITDEPTH
  1784. ! #define YYINITDEPTH 200
  1785. ! #endif
  1786. ! /*  YYMAXDEPTH is the maximum size the stacks can grow to
  1787. !     (effective only if the built-in stack extension method is used).  */
  1788. ! #if YYMAXDEPTH == 0
  1789. ! #undef YYMAXDEPTH
  1790.   #endif
  1791. ! #ifndef YYMAXDEPTH
  1792. ! #define YYMAXDEPTH 10000
  1793.   #endif
  1794. ! /* Prevent warning if -Wstrict-prototypes.  */
  1795. ! #ifdef __GNUC__
  1796. ! int yyparse (void);
  1797. ! #endif
  1798. ! #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  1799. ! #define __yy_bcopy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  1800. ! #else                /* not GNU C or C++ */
  1801. ! #ifndef __cplusplus
  1802. ! /* This is the most reliable way to avoid incompatibilities
  1803. !    in available built-in functions on various systems.  */
  1804. ! static void
  1805. ! __yy_bcopy (from, to, count)
  1806. !      char *from;
  1807. !      char *to;
  1808. !      int count;
  1809. ! {
  1810. !   register char *f = from;
  1811. !   register char *t = to;
  1812. !   register int i = count;
  1813. !   while (i-- > 0)
  1814. !     *t++ = *f++;
  1815. ! }
  1816. ! #else /* __cplusplus */
  1817. ! /* This is the most reliable way to avoid incompatibilities
  1818. !    in available built-in functions on various systems.  */
  1819. ! static void
  1820. ! __yy_bcopy (char *from, char *to, int count)
  1821. ! {
  1822. !   register char *f = from;
  1823. !   register char *t = to;
  1824. !   register int i = count;
  1825. !   while (i-- > 0)
  1826. !     *t++ = *f++;
  1827. ! }
  1828.   #endif
  1829.   #endif
  1830. ! #line 184 "/usr/local/lib/bison.simple"
  1831. ! int
  1832. ! yyparse()
  1833. ! {
  1834. !   register int yystate;
  1835. !   register int yyn;
  1836. !   register short *yyssp;
  1837. !   register YYSTYPE *yyvsp;
  1838. !   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1839. !   int yychar1;        /*  lookahead token as an internal (translated) token number */
  1840. !   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  1841. !   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  1842. !   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1843. !   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1844. ! #ifdef YYLSP_NEEDED
  1845. !   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  1846. !   YYLTYPE *yyls = yylsa;
  1847. !   YYLTYPE *yylsp;
  1848. ! #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  1849. ! #else
  1850. ! #define YYPOPSTACK   (yyvsp--, yyssp--)
  1851. ! #endif
  1852. !   int yystacksize = YYINITDEPTH;
  1853. ! #ifdef YYPURE
  1854. !   int yychar;
  1855. !   YYSTYPE yylval;
  1856. !   int yynerrs;
  1857. ! #ifdef YYLSP_NEEDED
  1858. !   YYLTYPE yylloc;
  1859. ! #endif
  1860. ! #endif
  1861. !   YYSTYPE yyval;        /*  the variable used to return        */
  1862. !                 /*  semantic values from the action    */
  1863. !                 /*  routines                */
  1864. !   int yylen;
  1865. ! #if YYDEBUG != 0
  1866. !   if (yydebug)
  1867. !     fprintf(stderr, "Starting parse\n");
  1868. ! #endif
  1869. !   yystate = 0;
  1870. !   yyerrstatus = 0;
  1871. !   yynerrs = 0;
  1872. !   yychar = YYEMPTY;        /* Cause a token to be read.  */
  1873. !   /* Initialize stack pointers.
  1874. !      Waste one element of value and location stack
  1875. !      so that they stay on the same level as the state stack.
  1876. !      The wasted elements are never initialized.  */
  1877. !   yyssp = yyss - 1;
  1878. !   yyvsp = yyvs;
  1879. ! #ifdef YYLSP_NEEDED
  1880. !   yylsp = yyls;
  1881. ! #endif
  1882. ! /* Push a new state, which is found in  yystate  .  */
  1883. ! /* In all cases, when you get here, the value and location stacks
  1884. !    have just been pushed. so pushing a state here evens the stacks.  */
  1885. ! yynewstate:
  1886. !   *++yyssp = yystate;
  1887. !   if (yyssp >= yyss + yystacksize - 1)
  1888. !     {
  1889. !       /* Give user a chance to reallocate the stack */
  1890. !       /* Use copies of these so that the &'s don't force the real ones into memory. */
  1891. !       YYSTYPE *yyvs1 = yyvs;
  1892. !       short *yyss1 = yyss;
  1893. ! #ifdef YYLSP_NEEDED
  1894. !       YYLTYPE *yyls1 = yyls;
  1895. ! #endif
  1896. !       /* Get the current used size of the three stacks, in elements.  */
  1897. !       int size = yyssp - yyss + 1;
  1898. ! #ifdef yyoverflow
  1899. !       /* Each stack pointer address is followed by the size of
  1900. !      the data in use in that stack, in bytes.  */
  1901. !       yyoverflow("parser stack overflow",
  1902. !          &yyss1, size * sizeof (*yyssp),
  1903. !          &yyvs1, size * sizeof (*yyvsp),
  1904. ! #ifdef YYLSP_NEEDED
  1905. !          &yyls1, size * sizeof (*yylsp),
  1906. ! #endif
  1907. !          &yystacksize);
  1908. !       yyss = yyss1; yyvs = yyvs1;
  1909. ! #ifdef YYLSP_NEEDED
  1910. !       yyls = yyls1;
  1911. ! #endif
  1912. ! #else /* no yyoverflow */
  1913. !       /* Extend the stack our own way.  */
  1914. !       if (yystacksize >= YYMAXDEPTH)
  1915. !     {
  1916. !       yyerror("parser stack overflow");
  1917. !       return 2;
  1918. !     }
  1919. !       yystacksize *= 2;
  1920. !       if (yystacksize > YYMAXDEPTH)
  1921. !     yystacksize = YYMAXDEPTH;
  1922. !       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1923. !       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1924. !       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1925. !       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1926. ! #ifdef YYLSP_NEEDED
  1927. !       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1928. !       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1929. ! #endif
  1930. ! #endif /* no yyoverflow */
  1931. !       yyssp = yyss + size - 1;
  1932. !       yyvsp = yyvs + size - 1;
  1933. ! #ifdef YYLSP_NEEDED
  1934. !       yylsp = yyls + size - 1;
  1935. ! #endif
  1936. ! #if YYDEBUG != 0
  1937. !       if (yydebug)
  1938. !     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1939. ! #endif
  1940. !       if (yyssp >= yyss + yystacksize - 1)
  1941. !     YYABORT;
  1942. !     }
  1943. ! #if YYDEBUG != 0
  1944. !   if (yydebug)
  1945. !     fprintf(stderr, "Entering state %d\n", yystate);
  1946. ! #endif
  1947. !   goto yybackup;
  1948. !  yybackup:
  1949. ! /* Do appropriate processing given the current state.  */
  1950. ! /* Read a lookahead token if we need one and don't already have one.  */
  1951. ! /* yyresume: */
  1952. !   /* First try to decide what to do without reference to lookahead token.  */
  1953. !   yyn = yypact[yystate];
  1954. !   if (yyn == YYFLAG)
  1955. !     goto yydefault;
  1956. !   /* Not known => get a lookahead token if don't already have one.  */
  1957. !   /* yychar is either YYEMPTY or YYEOF
  1958. !      or a valid token in external form.  */
  1959. !   if (yychar == YYEMPTY)
  1960. !     {
  1961. ! #if YYDEBUG != 0
  1962. !       if (yydebug)
  1963. !     fprintf(stderr, "Reading a token: ");
  1964. ! #endif
  1965. !       yychar = YYLEX;
  1966. !     }
  1967. !   /* Convert token to internal form (in yychar1) for indexing tables with */
  1968. !   if (yychar <= 0)        /* This means end of input. */
  1969. !     {
  1970. !       yychar1 = 0;
  1971. !       yychar = YYEOF;        /* Don't call YYLEX any more */
  1972. ! #if YYDEBUG != 0
  1973. !       if (yydebug)
  1974. !     fprintf(stderr, "Now at end of input.\n");
  1975. ! #endif
  1976. !     }
  1977. !   else
  1978. !     {
  1979. !       yychar1 = YYTRANSLATE(yychar);
  1980. ! #if YYDEBUG != 0
  1981. !       if (yydebug)
  1982. !     {
  1983. !       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  1984. !       /* Give the individual parser a way to print the precise meaning
  1985. !          of a token, for further debugging info.  */
  1986. ! #ifdef YYPRINT
  1987. !       YYPRINT (stderr, yychar, yylval);
  1988. ! #endif
  1989. !       fprintf (stderr, ")\n");
  1990. !     }
  1991. ! #endif
  1992. !     }
  1993. !   yyn += yychar1;
  1994. !   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1995. !     goto yydefault;
  1996. !   yyn = yytable[yyn];
  1997. !   /* yyn is what to do for this token type in this state.
  1998. !      Negative => reduce, -yyn is rule number.
  1999. !      Positive => shift, yyn is new state.
  2000. !        New state is final state => don't bother to shift,
  2001. !        just return success.
  2002. !      0, or most negative number => error.  */
  2003. !   if (yyn < 0)
  2004. !     {
  2005. !       if (yyn == YYFLAG)
  2006. !     goto yyerrlab;
  2007. !       yyn = -yyn;
  2008. !       goto yyreduce;
  2009. !     }
  2010. !   else if (yyn == 0)
  2011. !     goto yyerrlab;
  2012. !   if (yyn == YYFINAL)
  2013. !     YYACCEPT;
  2014. !   /* Shift the lookahead token.  */
  2015. ! #if YYDEBUG != 0
  2016. !   if (yydebug)
  2017. !     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  2018. ! #endif
  2019. !   /* Discard the token being shifted unless it is eof.  */
  2020. !   if (yychar != YYEOF)
  2021. !     yychar = YYEMPTY;
  2022. !   *++yyvsp = yylval;
  2023. ! #ifdef YYLSP_NEEDED
  2024. !   *++yylsp = yylloc;
  2025. ! #endif
  2026. !   /* count tokens shifted since error; after three, turn off error status.  */
  2027. !   if (yyerrstatus) yyerrstatus--;
  2028. !   yystate = yyn;
  2029. !   goto yynewstate;
  2030. ! /* Do the default action for the current state.  */
  2031. ! yydefault:
  2032. !   yyn = yydefact[yystate];
  2033. !   if (yyn == 0)
  2034. !     goto yyerrlab;
  2035. ! /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  2036. ! yyreduce:
  2037. !   yylen = yyr2[yyn];
  2038. !   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  2039. ! #if YYDEBUG != 0
  2040. !   if (yydebug)
  2041. !     {
  2042. !       int i;
  2043. !       fprintf (stderr, "Reducing via rule %d (line %d), ",
  2044. !            yyn, yyrline[yyn]);
  2045. !       /* Print the symbols being reduced, and their result.  */
  2046. !       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  2047. !     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  2048. !       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  2049. !     }
  2050.   #endif
  2051.   
  2052. +   switch (yyn) {
  2053.   case 3:
  2054. ! #line 226 "gram.y"
  2055.   {
  2056.   /* stat:   is the nonterminal for Fortran statements */
  2057.   
  2058. !           lastwasbranch = NO; ;
  2059. !     break;}
  2060.   case 5:
  2061. ! #line 232 "gram.y"
  2062.   { /* forbid further statement function definitions... */
  2063.             if (parstate == INDATA && laststfcn != thisstno)
  2064.               parstate = INEXEC;
  2065.             thisstno++;
  2066. !           if(yyvsp[-1].labval && (yyvsp[-1].labval->labelno==dorange))
  2067. !             enddo(yyvsp[-1].labval->labelno);
  2068.             if(lastwasbranch && thislabel==NULL)
  2069.               warn("statement cannot be reached");
  2070.             lastwasbranch = thiswasbranch;
  2071.             thiswasbranch = NO;
  2072. !           if(yyvsp[-1].labval)
  2073.               {
  2074. !             if(yyvsp[-1].labval->labtype == LABFORMAT)
  2075.                   err("label already that of a format");
  2076.               else
  2077. !                 yyvsp[-1].labval->labtype = LABEXEC;
  2078.               }
  2079.             freetemps();
  2080. !         ;
  2081. !     break;}
  2082.   case 6:
  2083. ! #line 252 "gram.y"
  2084.   { if (can_include)
  2085. !             doinclude( yyvsp[0].charpval );
  2086.             else {
  2087. !             fprintf(diagfile, "Cannot open file %s\n", yyvsp[0].charpval);
  2088.               done(1);
  2089.               }
  2090. !         ;
  2091. !     break;}
  2092.   case 7:
  2093. ! #line 260 "gram.y"
  2094. ! { if (yyvsp[-2].labval)
  2095.               lastwasbranch = NO;
  2096.             endproc(); /* lastwasbranch = NO; -- set in endproc() */
  2097. !         ;
  2098. !     break;}
  2099.   case 8:
  2100. ! #line 265 "gram.y"
  2101.   { extern void unclassifiable();
  2102.             unclassifiable();
  2103.   
  2104.   /* flline flushes the current line, ignoring the rest of the text there */
  2105.   
  2106. !           flline(); ;
  2107. !     break;}
  2108.   case 9:
  2109. ! #line 272 "gram.y"
  2110.   { flline();  needkwd = NO;  inioctl = NO;
  2111. !           yyerrok; yyclearin; ;
  2112. !     break;}
  2113.   case 10:
  2114. ! #line 277 "gram.y"
  2115.   {
  2116.           if(yystno != 0)
  2117.               {
  2118. ***************
  2119. *** 894,964 ****
  2120.                   }
  2121.               }
  2122.           else    yyval.labval = thislabel = NULL;
  2123. !         } break;
  2124.   case 11:
  2125. ! /* # line 305 "gram.in" */
  2126. ! {startproc(yypvt[-0].extval, CLMAIN); } break;
  2127.   case 12:
  2128. ! /* # line 307 "gram.in" */
  2129.   {    warn("ignoring arguments to main program");
  2130.               /* hashclear(); */
  2131. !             startproc(yypvt[-1].extval, CLMAIN); } break;
  2132.   case 13:
  2133. ! /* # line 311 "gram.in" */
  2134. ! { if(yypvt[-0].extval) NO66("named BLOCKDATA");
  2135. !           startproc(yypvt[-0].extval, CLBLOCK); } break;
  2136.   case 14:
  2137. ! /* # line 314 "gram.in" */
  2138. ! { entrypt(CLPROC, TYSUBR, (ftnint) 0,  yypvt[-1].extval, yypvt[-0].chval); } break;
  2139.   case 15:
  2140. ! /* # line 316 "gram.in" */
  2141. ! { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval); } break;
  2142.   case 16:
  2143. ! /* # line 318 "gram.in" */
  2144. ! { entrypt(CLPROC, yypvt[-4].ival, varleng, yypvt[-1].extval, yypvt[-0].chval); } break;
  2145.   case 17:
  2146. ! /* # line 320 "gram.in" */
  2147.   { if(parstate==OUTSIDE || procclass==CLMAIN
  2148.               || procclass==CLBLOCK)
  2149.                   execerr("misplaced entry statement", CNULL);
  2150. !           entrypt(CLENTRY, 0, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval);
  2151. !         } break;
  2152.   case 18:
  2153. ! /* # line 328 "gram.in" */
  2154. ! { newproc(); } break;
  2155.   case 19:
  2156. ! /* # line 332 "gram.in" */
  2157. ! { yyval.extval = newentry(yypvt[-0].namval, 1); } break;
  2158.   case 20:
  2159. ! /* # line 336 "gram.in" */
  2160. ! { yyval.namval = mkname(token); } break;
  2161.   case 21:
  2162. ! /* # line 339 "gram.in" */
  2163. ! { yyval.extval = NULL; } break;
  2164.   case 29:
  2165. ! /* # line 357 "gram.in" */
  2166. ! { yyval.chval = 0; } break;
  2167.   case 30:
  2168. ! /* # line 359 "gram.in" */
  2169.   { NO66(" () argument list");
  2170. !           yyval.chval = 0; } break;
  2171.   case 31:
  2172. ! /* # line 362 "gram.in" */
  2173. ! {yyval.chval = yypvt[-1].chval; } break;
  2174.   case 32:
  2175. ! /* # line 366 "gram.in" */
  2176. ! { yyval.chval = (yypvt[-0].namval ? mkchain((char *)yypvt[-0].namval,CHNULL) : CHNULL ); } break;
  2177.   case 33:
  2178. ! /* # line 368 "gram.in" */
  2179. ! { if(yypvt[-0].namval) yypvt[-2].chval = yyval.chval = mkchain((char *)yypvt[-0].namval, yypvt[-2].chval); } break;
  2180.   case 34:
  2181. ! /* # line 372 "gram.in" */
  2182. ! { if(yypvt[-0].namval->vstg!=STGUNKNOWN && yypvt[-0].namval->vstg!=STGARG)
  2183. !             dclerr("name declared as argument after use", yypvt[-0].namval);
  2184. !           yypvt[-0].namval->vstg = STGARG;
  2185. !         } break;
  2186.   case 35:
  2187. ! /* # line 377 "gram.in" */
  2188.   { NO66("altenate return argument");
  2189.   
  2190.   /* substars   means that '*'ed formal parameters should be replaced.
  2191. --- 1473,1561 ----
  2192.                   }
  2193.               }
  2194.           else    yyval.labval = thislabel = NULL;
  2195. !         ;
  2196. !     break;}
  2197.   case 11:
  2198. ! #line 305 "gram.y"
  2199. ! {startproc(yyvsp[0].extval, CLMAIN); ;
  2200. !     break;}
  2201.   case 12:
  2202. ! #line 307 "gram.y"
  2203.   {    warn("ignoring arguments to main program");
  2204.               /* hashclear(); */
  2205. !             startproc(yyvsp[-1].extval, CLMAIN); ;
  2206. !     break;}
  2207.   case 13:
  2208. ! #line 311 "gram.y"
  2209. ! { if(yyvsp[0].extval) NO66("named BLOCKDATA");
  2210. !           startproc(yyvsp[0].extval, CLBLOCK); ;
  2211. !     break;}
  2212.   case 14:
  2213. ! #line 314 "gram.y"
  2214. ! { entrypt(CLPROC, TYSUBR, (ftnint) 0,  yyvsp[-1].extval, yyvsp[0].chval); ;
  2215. !     break;}
  2216.   case 15:
  2217. ! #line 316 "gram.y"
  2218. ! { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yyvsp[-1].extval, yyvsp[0].chval); ;
  2219. !     break;}
  2220.   case 16:
  2221. ! #line 318 "gram.y"
  2222. ! { entrypt(CLPROC, yyvsp[-4].ival, varleng, yyvsp[-1].extval, yyvsp[0].chval); ;
  2223. !     break;}
  2224.   case 17:
  2225. ! #line 320 "gram.y"
  2226.   { if(parstate==OUTSIDE || procclass==CLMAIN
  2227.               || procclass==CLBLOCK)
  2228.                   execerr("misplaced entry statement", CNULL);
  2229. !           entrypt(CLENTRY, 0, (ftnint) 0, yyvsp[-1].extval, yyvsp[0].chval);
  2230. !         ;
  2231. !     break;}
  2232.   case 18:
  2233. ! #line 328 "gram.y"
  2234. ! { newproc(); ;
  2235. !     break;}
  2236.   case 19:
  2237. ! #line 332 "gram.y"
  2238. ! { yyval.extval = newentry(yyvsp[0].namval, 1); ;
  2239. !     break;}
  2240.   case 20:
  2241. ! #line 336 "gram.y"
  2242. ! { yyval.namval = mkname(token); ;
  2243. !     break;}
  2244.   case 21:
  2245. ! #line 339 "gram.y"
  2246. ! { yyval.extval = NULL; ;
  2247. !     break;}
  2248.   case 29:
  2249. ! #line 357 "gram.y"
  2250. ! { yyval.chval = 0; ;
  2251. !     break;}
  2252.   case 30:
  2253. ! #line 359 "gram.y"
  2254.   { NO66(" () argument list");
  2255. !           yyval.chval = 0; ;
  2256. !     break;}
  2257.   case 31:
  2258. ! #line 362 "gram.y"
  2259. ! {yyval.chval = yyvsp[-1].chval; ;
  2260. !     break;}
  2261.   case 32:
  2262. ! #line 366 "gram.y"
  2263. ! { yyval.chval = (yyvsp[0].namval ? mkchain((char *)yyvsp[0].namval,CHNULL) : CHNULL ); ;
  2264. !     break;}
  2265.   case 33:
  2266. ! #line 368 "gram.y"
  2267. ! { if(yyvsp[0].namval) yyvsp[-2].chval = yyval.chval = mkchain((char *)yyvsp[0].namval, yyvsp[-2].chval); ;
  2268. !     break;}
  2269.   case 34:
  2270. ! #line 372 "gram.y"
  2271. ! { if(yyvsp[0].namval->vstg!=STGUNKNOWN && yyvsp[0].namval->vstg!=STGARG)
  2272. !             dclerr("name declared as argument after use", yyvsp[0].namval);
  2273. !           yyvsp[0].namval->vstg = STGARG;
  2274. !         ;
  2275. !     break;}
  2276.   case 35:
  2277. ! #line 377 "gram.y"
  2278.   { NO66("altenate return argument");
  2279.   
  2280.   /* substars   means that '*'ed formal parameters should be replaced.
  2281. ***************
  2282. *** 969,1065 ****
  2283.   
  2284.      This variable is only referred to in   proc.c   */
  2285.   
  2286. !           yyval.namval = 0;  substars = YES; } break;
  2287.   case 36:
  2288. ! /* # line 393 "gram.in" */
  2289.   {
  2290.           char *s;
  2291.           s = copyn(toklen+1, token);
  2292.           s[toklen] = '\0';
  2293.           yyval.charpval = s;
  2294. !         } break;
  2295.   case 45:
  2296. ! /* # line 409 "gram.in" */
  2297.   { NO66("SAVE statement");
  2298. !           saveall = YES; } break;
  2299.   case 46:
  2300. ! /* # line 412 "gram.in" */
  2301. ! { NO66("SAVE statement"); } break;
  2302.   case 47:
  2303. ! /* # line 414 "gram.in" */
  2304. ! { fmtstmt(thislabel); setfmt(thislabel); } break;
  2305.   case 48:
  2306. ! /* # line 416 "gram.in" */
  2307. ! { NO66("PARAMETER statement"); } break;
  2308.   case 49:
  2309. ! /* # line 420 "gram.in" */
  2310. ! { settype(yypvt[-4].namval, yypvt[-6].ival, yypvt[-0].lval);
  2311. !           if(ndim>0) setbound(yypvt[-4].namval,ndim,dims);
  2312. !         } break;
  2313.   case 50:
  2314. ! /* # line 424 "gram.in" */
  2315. ! { settype(yypvt[-2].namval, yypvt[-4].ival, yypvt[-0].lval);
  2316. !           if(ndim>0) setbound(yypvt[-2].namval,ndim,dims);
  2317. !         } break;
  2318.   case 51:
  2319. ! /* # line 428 "gram.in" */
  2320.   { if (new_dcl == 2) {
  2321.               err("attempt to give DATA in type-declaration");
  2322.               new_dcl = 1;
  2323.               }
  2324. !         } break;
  2325.   case 52:
  2326. ! /* # line 435 "gram.in" */
  2327. ! { new_dcl = 2; } break;
  2328.   case 53:
  2329. ! /* # line 438 "gram.in" */
  2330. ! { varleng = yypvt[-0].lval; } break;
  2331.   case 54:
  2332. ! /* # line 442 "gram.in" */
  2333. ! { varleng = (yypvt[-0].ival<0 || ONEOF(yypvt[-0].ival,M(TYLOGICAL)|M(TYLONG))
  2334. !                 ? 0 : typesize[yypvt[-0].ival]);
  2335. !           vartype = yypvt[-0].ival; } break;
  2336.   case 55:
  2337. ! /* # line 447 "gram.in" */
  2338. ! { yyval.ival = TYLONG; } break;
  2339.   case 56:
  2340. ! /* # line 448 "gram.in" */
  2341. ! { yyval.ival = tyreal; } break;
  2342.   case 57:
  2343. ! /* # line 449 "gram.in" */
  2344. ! { ++complex_seen; yyval.ival = tycomplex; } break;
  2345.   case 58:
  2346. ! /* # line 450 "gram.in" */
  2347. ! { yyval.ival = TYDREAL; } break;
  2348.   case 59:
  2349. ! /* # line 451 "gram.in" */
  2350. ! { ++dcomplex_seen; NOEXT("DOUBLE COMPLEX statement"); yyval.ival = TYDCOMPLEX; } break;
  2351.   case 60:
  2352. ! /* # line 452 "gram.in" */
  2353. ! { yyval.ival = TYLOGICAL; } break;
  2354.   case 61:
  2355. ! /* # line 453 "gram.in" */
  2356. ! { NO66("CHARACTER statement"); yyval.ival = TYCHAR; } break;
  2357.   case 62:
  2358. ! /* # line 454 "gram.in" */
  2359. ! { yyval.ival = TYUNKNOWN; } break;
  2360.   case 63:
  2361. ! /* # line 455 "gram.in" */
  2362. ! { yyval.ival = TYUNKNOWN; } break;
  2363.   case 64:
  2364. ! /* # line 456 "gram.in" */
  2365. ! { NOEXT("AUTOMATIC statement"); yyval.ival = - STGAUTO; } break;
  2366.   case 65:
  2367. ! /* # line 457 "gram.in" */
  2368. ! { NOEXT("STATIC statement"); yyval.ival = - STGBSS; } break;
  2369.   case 66:
  2370. ! /* # line 461 "gram.in" */
  2371. ! { yyval.lval = varleng; } break;
  2372.   case 67:
  2373. ! /* # line 463 "gram.in" */
  2374.   {
  2375.           expptr p;
  2376. !         p = yypvt[-1].expval;
  2377.           NO66("length specification *n");
  2378.           if( ! ISICON(p) || p->constblock.Const.ci <= 0 )
  2379.               {
  2380. --- 1566,1686 ----
  2381.   
  2382.      This variable is only referred to in   proc.c   */
  2383.   
  2384. !           yyval.namval = 0;  substars = YES; ;
  2385. !     break;}
  2386.   case 36:
  2387. ! #line 393 "gram.y"
  2388.   {
  2389.           char *s;
  2390.           s = copyn(toklen+1, token);
  2391.           s[toklen] = '\0';
  2392.           yyval.charpval = s;
  2393. !         ;
  2394. !     break;}
  2395.   case 45:
  2396. ! #line 409 "gram.y"
  2397.   { NO66("SAVE statement");
  2398. !           saveall = YES; ;
  2399. !     break;}
  2400.   case 46:
  2401. ! #line 412 "gram.y"
  2402. ! { NO66("SAVE statement"); ;
  2403. !     break;}
  2404.   case 47:
  2405. ! #line 414 "gram.y"
  2406. ! { fmtstmt(thislabel); setfmt(thislabel); ;
  2407. !     break;}
  2408.   case 48:
  2409. ! #line 416 "gram.y"
  2410. ! { NO66("PARAMETER statement"); ;
  2411. !     break;}
  2412.   case 49:
  2413. ! #line 420 "gram.y"
  2414. ! { settype(yyvsp[-4].namval, yyvsp[-6].ival, yyvsp[0].lval);
  2415. !           if(ndim>0) setbound(yyvsp[-4].namval,ndim,dims);
  2416. !         ;
  2417. !     break;}
  2418.   case 50:
  2419. ! #line 424 "gram.y"
  2420. ! { settype(yyvsp[-2].namval, yyvsp[-4].ival, yyvsp[0].lval);
  2421. !           if(ndim>0) setbound(yyvsp[-2].namval,ndim,dims);
  2422. !         ;
  2423. !     break;}
  2424.   case 51:
  2425. ! #line 428 "gram.y"
  2426.   { if (new_dcl == 2) {
  2427.               err("attempt to give DATA in type-declaration");
  2428.               new_dcl = 1;
  2429.               }
  2430. !         ;
  2431. !     break;}
  2432.   case 52:
  2433. ! #line 435 "gram.y"
  2434. ! { new_dcl = 2; ;
  2435. !     break;}
  2436.   case 53:
  2437. ! #line 438 "gram.y"
  2438. ! { varleng = yyvsp[0].lval; ;
  2439. !     break;}
  2440.   case 54:
  2441. ! #line 442 "gram.y"
  2442. ! { varleng = (yyvsp[0].ival<0 || ONEOF(yyvsp[0].ival,M(TYLOGICAL)|M(TYLONG))
  2443. !                 ? 0 : typesize[yyvsp[0].ival]);
  2444. !           vartype = yyvsp[0].ival; ;
  2445. !     break;}
  2446.   case 55:
  2447. ! #line 447 "gram.y"
  2448. ! { yyval.ival = TYLONG; ;
  2449. !     break;}
  2450.   case 56:
  2451. ! #line 448 "gram.y"
  2452. ! { yyval.ival = tyreal; ;
  2453. !     break;}
  2454.   case 57:
  2455. ! #line 449 "gram.y"
  2456. ! { ++complex_seen; yyval.ival = tycomplex; ;
  2457. !     break;}
  2458.   case 58:
  2459. ! #line 450 "gram.y"
  2460. ! { yyval.ival = TYDREAL; ;
  2461. !     break;}
  2462.   case 59:
  2463. ! #line 451 "gram.y"
  2464. ! { ++dcomplex_seen; NOEXT("DOUBLE COMPLEX statement"); yyval.ival = TYDCOMPLEX; ;
  2465. !     break;}
  2466.   case 60:
  2467. ! #line 452 "gram.y"
  2468. ! { yyval.ival = TYLOGICAL; ;
  2469. !     break;}
  2470.   case 61:
  2471. ! #line 453 "gram.y"
  2472. ! { NO66("CHARACTER statement"); yyval.ival = TYCHAR; ;
  2473. !     break;}
  2474.   case 62:
  2475. ! #line 454 "gram.y"
  2476. ! { yyval.ival = TYUNKNOWN; ;
  2477. !     break;}
  2478.   case 63:
  2479. ! #line 455 "gram.y"
  2480. ! { yyval.ival = TYUNKNOWN; ;
  2481. !     break;}
  2482.   case 64:
  2483. ! #line 456 "gram.y"
  2484. ! { NOEXT("AUTOMATIC statement"); yyval.ival = - STGAUTO; ;
  2485. !     break;}
  2486.   case 65:
  2487. ! #line 457 "gram.y"
  2488. ! { NOEXT("STATIC statement"); yyval.ival = - STGBSS; ;
  2489. !     break;}
  2490.   case 66:
  2491. ! #line 461 "gram.y"
  2492. ! { yyval.lval = varleng; ;
  2493. !     break;}
  2494.   case 67:
  2495. ! #line 463 "gram.y"
  2496.   {
  2497.           expptr p;
  2498. !         p = yyvsp[-1].expval;
  2499.           NO66("length specification *n");
  2500.           if( ! ISICON(p) || p->constblock.Const.ci <= 0 )
  2501.               {
  2502. ***************
  2503. *** 1081,1122 ****
  2504.                       yyval.lval = varleng;
  2505.                   }
  2506.               }
  2507. !         } break;
  2508.   case 68:
  2509. ! /* # line 489 "gram.in" */
  2510. ! { NO66("length specification *(*)"); yyval.lval = -1; } break;
  2511.   case 69:
  2512. ! /* # line 493 "gram.in" */
  2513. ! { incomm( yyval.extval = comblock("") , yypvt[-0].namval ); } break;
  2514.   case 70:
  2515. ! /* # line 495 "gram.in" */
  2516. ! { yyval.extval = yypvt[-1].extval;  incomm(yypvt[-1].extval, yypvt[-0].namval); } break;
  2517.   case 71:
  2518. ! /* # line 497 "gram.in" */
  2519. ! { yyval.extval = yypvt[-2].extval;  incomm(yypvt[-2].extval, yypvt[-0].namval); } break;
  2520.   case 72:
  2521. ! /* # line 499 "gram.in" */
  2522. ! { incomm(yypvt[-2].extval, yypvt[-0].namval); } break;
  2523.   case 73:
  2524. ! /* # line 503 "gram.in" */
  2525. ! { yyval.extval = comblock(""); } break;
  2526.   case 74:
  2527. ! /* # line 505 "gram.in" */
  2528. ! { yyval.extval = comblock(token); } break;
  2529.   case 75:
  2530. ! /* # line 509 "gram.in" */
  2531. ! { setext(yypvt[-0].namval); } break;
  2532.   case 76:
  2533. ! /* # line 511 "gram.in" */
  2534. ! { setext(yypvt[-0].namval); } break;
  2535.   case 77:
  2536. ! /* # line 515 "gram.in" */
  2537. ! { NO66("INTRINSIC statement"); setintr(yypvt[-0].namval); } break;
  2538.   case 78:
  2539. ! /* # line 517 "gram.in" */
  2540. ! { setintr(yypvt[-0].namval); } break;
  2541.   case 81:
  2542. ! /* # line 525 "gram.in" */
  2543.   {
  2544.           struct Equivblock *p;
  2545.           if(nequiv >= maxequiv)
  2546. --- 1702,1755 ----
  2547.                       yyval.lval = varleng;
  2548.                   }
  2549.               }
  2550. !         ;
  2551. !     break;}
  2552.   case 68:
  2553. ! #line 489 "gram.y"
  2554. ! { NO66("length specification *(*)"); yyval.lval = -1; ;
  2555. !     break;}
  2556.   case 69:
  2557. ! #line 493 "gram.y"
  2558. ! { incomm( yyval.extval = comblock("") , yyvsp[0].namval ); ;
  2559. !     break;}
  2560.   case 70:
  2561. ! #line 495 "gram.y"
  2562. ! { yyval.extval = yyvsp[-1].extval;  incomm(yyvsp[-1].extval, yyvsp[0].namval); ;
  2563. !     break;}
  2564.   case 71:
  2565. ! #line 497 "gram.y"
  2566. ! { yyval.extval = yyvsp[-2].extval;  incomm(yyvsp[-2].extval, yyvsp[0].namval); ;
  2567. !     break;}
  2568.   case 72:
  2569. ! #line 499 "gram.y"
  2570. ! { incomm(yyvsp[-2].extval, yyvsp[0].namval); ;
  2571. !     break;}
  2572.   case 73:
  2573. ! #line 503 "gram.y"
  2574. ! { yyval.extval = comblock(""); ;
  2575. !     break;}
  2576.   case 74:
  2577. ! #line 505 "gram.y"
  2578. ! { yyval.extval = comblock(token); ;
  2579. !     break;}
  2580.   case 75:
  2581. ! #line 509 "gram.y"
  2582. ! { setext(yyvsp[0].namval); ;
  2583. !     break;}
  2584.   case 76:
  2585. ! #line 511 "gram.y"
  2586. ! { setext(yyvsp[0].namval); ;
  2587. !     break;}
  2588.   case 77:
  2589. ! #line 515 "gram.y"
  2590. ! { NO66("INTRINSIC statement"); setintr(yyvsp[0].namval); ;
  2591. !     break;}
  2592.   case 78:
  2593. ! #line 517 "gram.y"
  2594. ! { setintr(yyvsp[0].namval); ;
  2595. !     break;}
  2596.   case 81:
  2597. ! #line 525 "gram.y"
  2598.   {
  2599.           struct Equivblock *p;
  2600.           if(nequiv >= maxequiv)
  2601. ***************
  2602. *** 1125,1145 ****
  2603.           p->eqvinit = NO;
  2604.           p->eqvbottom = 0;
  2605.           p->eqvtop = 0;
  2606. !         p->equivs = yypvt[-1].eqvval;
  2607. !         } break;
  2608.   case 82:
  2609. ! /* # line 538 "gram.in" */
  2610.   { yyval.eqvval=ALLOC(Eqvchain);
  2611. !           yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *)yypvt[-0].expval;
  2612. !         } break;
  2613.   case 83:
  2614. ! /* # line 542 "gram.in" */
  2615.   { yyval.eqvval=ALLOC(Eqvchain);
  2616. !           yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *) yypvt[-0].expval;
  2617. !           yyval.eqvval->eqvnextp = yypvt[-2].eqvval;
  2618. !         } break;
  2619.   case 86:
  2620. ! /* # line 553 "gram.in" */
  2621.   { if(parstate == OUTSIDE)
  2622.               {
  2623.               newproc();
  2624. --- 1758,1781 ----
  2625.           p->eqvinit = NO;
  2626.           p->eqvbottom = 0;
  2627.           p->eqvtop = 0;
  2628. !         p->equivs = yyvsp[-1].eqvval;
  2629. !         ;
  2630. !     break;}
  2631.   case 82:
  2632. ! #line 538 "gram.y"
  2633.   { yyval.eqvval=ALLOC(Eqvchain);
  2634. !           yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *)yyvsp[0].expval;
  2635. !         ;
  2636. !     break;}
  2637.   case 83:
  2638. ! #line 542 "gram.y"
  2639.   { yyval.eqvval=ALLOC(Eqvchain);
  2640. !           yyval.eqvval->eqvitem.eqvlhs = (struct Primblock *) yyvsp[0].expval;
  2641. !           yyval.eqvval->eqvnextp = yyvsp[-2].eqvval;
  2642. !         ;
  2643. !     break;}
  2644.   case 86:
  2645. ! #line 553 "gram.y"
  2646.   { if(parstate == OUTSIDE)
  2647.               {
  2648.               newproc();
  2649. ***************
  2650. *** 1151,1207 ****
  2651.               parstate = INDATA;
  2652.               datagripe = 1;
  2653.               }
  2654. !         } break;
  2655.   case 87:
  2656. ! /* # line 568 "gram.in" */
  2657.   { ftnint junk;
  2658.             if(nextdata(&junk) != NULL)
  2659.               err("too few initializers");
  2660. !           frdata(yypvt[-4].chval);
  2661.             frrpl();
  2662. !         } break;
  2663.   case 88:
  2664. ! /* # line 576 "gram.in" */
  2665. ! { frchain(&datastack); curdtp = 0; } break;
  2666.   case 89:
  2667. ! /* # line 578 "gram.in" */
  2668. ! { pop_datastack(); } break;
  2669.   case 90:
  2670. ! /* # line 580 "gram.in" */
  2671. ! { toomanyinit = NO; } break;
  2672.   case 93:
  2673. ! /* # line 585 "gram.in" */
  2674. ! { dataval(ENULL, yypvt[-0].expval); } break;
  2675.   case 94:
  2676. ! /* # line 587 "gram.in" */
  2677. ! { dataval(yypvt[-2].expval, yypvt[-0].expval); } break;
  2678.   case 96:
  2679. ! /* # line 592 "gram.in" */
  2680. ! { if( yypvt[-1].ival==OPMINUS && ISCONST(yypvt[-0].expval) )
  2681. !             consnegop((Constp)yypvt[-0].expval);
  2682. !           yyval.expval = yypvt[-0].expval;
  2683. !         } break;
  2684.   case 100:
  2685. ! /* # line 604 "gram.in" */
  2686.   { int k;
  2687. !           yypvt[-0].namval->vsave = YES;
  2688. !           k = yypvt[-0].namval->vstg;
  2689.           if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) )
  2690. !             dclerr("can only save static variables", yypvt[-0].namval);
  2691. !         } break;
  2692.   case 104:
  2693. ! /* # line 618 "gram.in" */
  2694. ! { if(yypvt[-2].namval->vclass == CLUNKNOWN)
  2695. !             make_param((struct Paramblock *)yypvt[-2].namval, yypvt[-0].expval);
  2696. !           else dclerr("cannot make into parameter", yypvt[-2].namval);
  2697. !         } break;
  2698.   case 105:
  2699. ! /* # line 625 "gram.in" */
  2700. ! { if(ndim>0) setbound(yypvt[-1].namval, ndim, dims); } break;
  2701.   case 106:
  2702. ! /* # line 629 "gram.in" */
  2703.   { Namep np;
  2704. !           np = ( (struct Primblock *) yypvt[-0].expval) -> namep;
  2705.             vardcl(np);
  2706.             if(np->vstg == STGCOMMON)
  2707.               extsymtab[np->vardesc.varno].extinit = YES;
  2708. --- 1787,1854 ----
  2709.               parstate = INDATA;
  2710.               datagripe = 1;
  2711.               }
  2712. !         ;
  2713. !     break;}
  2714.   case 87:
  2715. ! #line 568 "gram.y"
  2716.   { ftnint junk;
  2717.             if(nextdata(&junk) != NULL)
  2718.               err("too few initializers");
  2719. !           frdata(yyvsp[-4].chval);
  2720.             frrpl();
  2721. !         ;
  2722. !     break;}
  2723.   case 88:
  2724. ! #line 576 "gram.y"
  2725. ! { frchain(&datastack); curdtp = 0; ;
  2726. !     break;}
  2727.   case 89:
  2728. ! #line 578 "gram.y"
  2729. ! { pop_datastack(); ;
  2730. !     break;}
  2731.   case 90:
  2732. ! #line 580 "gram.y"
  2733. ! { toomanyinit = NO; ;
  2734. !     break;}
  2735.   case 93:
  2736. ! #line 585 "gram.y"
  2737. ! { dataval(ENULL, yyvsp[0].expval); ;
  2738. !     break;}
  2739.   case 94:
  2740. ! #line 587 "gram.y"
  2741. ! { dataval(yyvsp[-2].expval, yyvsp[0].expval); ;
  2742. !     break;}
  2743.   case 96:
  2744. ! #line 592 "gram.y"
  2745. ! { if( yyvsp[-1].ival==OPMINUS && ISCONST(yyvsp[0].expval) )
  2746. !             consnegop((Constp)yyvsp[0].expval);
  2747. !           yyval.expval = yyvsp[0].expval;
  2748. !         ;
  2749. !     break;}
  2750.   case 100:
  2751. ! #line 604 "gram.y"
  2752.   { int k;
  2753. !           yyvsp[0].namval->vsave = YES;
  2754. !           k = yyvsp[0].namval->vstg;
  2755.           if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) )
  2756. !             dclerr("can only save static variables", yyvsp[0].namval);
  2757. !         ;
  2758. !     break;}
  2759.   case 104:
  2760. ! #line 618 "gram.y"
  2761. ! { if(yyvsp[-2].namval->vclass == CLUNKNOWN)
  2762. !             make_param((struct Paramblock *)yyvsp[-2].namval, yyvsp[0].expval);
  2763. !           else dclerr("cannot make into parameter", yyvsp[-2].namval);
  2764. !         ;
  2765. !     break;}
  2766.   case 105:
  2767. ! #line 625 "gram.y"
  2768. ! { if(ndim>0) setbound(yyvsp[-1].namval, ndim, dims); ;
  2769. !     break;}
  2770.   case 106:
  2771. ! #line 629 "gram.y"
  2772.   { Namep np;
  2773. !           np = ( (struct Primblock *) yyvsp[0].expval) -> namep;
  2774.             vardcl(np);
  2775.             if(np->vstg == STGCOMMON)
  2776.               extsymtab[np->vardesc.varno].extinit = YES;
  2777. ***************
  2778. *** 1209,1300 ****
  2779.               eqvclass[np->vardesc.varno].eqvinit = YES;
  2780.             else if(np->vstg!=STGINIT && np->vstg!=STGBSS)
  2781.               dclerr("inconsistent storage classes", np);
  2782. !           yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL);
  2783. !         } break;
  2784.   case 107:
  2785. ! /* # line 641 "gram.in" */
  2786.   { chainp p; struct Impldoblock *q;
  2787.           pop_datastack();
  2788.           q = ALLOC(Impldoblock);
  2789.           q->tag = TIMPLDO;
  2790. !         (q->varnp = (Namep) (yypvt[-1].chval->datap))->vimpldovar = 1;
  2791. !         p = yypvt[-1].chval->nextp;
  2792.           if(p)  { q->implb = (expptr)(p->datap); p = p->nextp; }
  2793.           if(p)  { q->impub = (expptr)(p->datap); p = p->nextp; }
  2794.           if(p)  { q->impstep = (expptr)(p->datap); }
  2795. !         frchain( & (yypvt[-1].chval) );
  2796.           yyval.chval = mkchain((char *)q, CHNULL);
  2797. !         q->datalist = hookup(yypvt[-3].chval, yyval.chval);
  2798. !         } break;
  2799.   case 108:
  2800. ! /* # line 657 "gram.in" */
  2801.   { if (!datastack)
  2802.               curdtp = 0;
  2803.             datastack = mkchain((char *)curdtp, datastack);
  2804. !           curdtp = yypvt[-0].chval; curdtelt = 0;
  2805. !           } break;
  2806.   case 109:
  2807. ! /* # line 663 "gram.in" */
  2808. ! { yyval.chval = hookup(yypvt[-2].chval, yypvt[-0].chval); } break;
  2809.   case 110:
  2810. ! /* # line 667 "gram.in" */
  2811. ! { ndim = 0; } break;
  2812.   case 112:
  2813. ! /* # line 671 "gram.in" */
  2814. ! { ndim = 0; } break;
  2815.   case 115:
  2816. ! /* # line 676 "gram.in" */
  2817.   {
  2818.             if(ndim == maxdim)
  2819.               err("too many dimensions");
  2820.             else if(ndim < maxdim)
  2821.               { dims[ndim].lb = 0;
  2822. !               dims[ndim].ub = yypvt[-0].expval;
  2823.               }
  2824.             ++ndim;
  2825. !         } break;
  2826.   case 116:
  2827. ! /* # line 686 "gram.in" */
  2828.   {
  2829.             if(ndim == maxdim)
  2830.               err("too many dimensions");
  2831.             else if(ndim < maxdim)
  2832. !             { dims[ndim].lb = yypvt[-2].expval;
  2833. !               dims[ndim].ub = yypvt[-0].expval;
  2834.               }
  2835.             ++ndim;
  2836. !         } break;
  2837.   case 117:
  2838. ! /* # line 698 "gram.in" */
  2839. ! { yyval.expval = 0; } break;
  2840.   case 119:
  2841. ! /* # line 703 "gram.in" */
  2842. ! { nstars = 1; labarray[0] = yypvt[-0].labval; } break;
  2843.   case 120:
  2844. ! /* # line 705 "gram.in" */
  2845. ! { if(nstars < maxlablist)  labarray[nstars++] = yypvt[-0].labval; } break;
  2846.   case 121:
  2847. ! /* # line 709 "gram.in" */
  2848. ! { yyval.labval = execlab( convci(toklen, token) ); } break;
  2849.   case 122:
  2850. ! /* # line 713 "gram.in" */
  2851. ! { NO66("IMPLICIT statement"); } break;
  2852.   case 125:
  2853. ! /* # line 719 "gram.in" */
  2854.   { if (vartype != TYUNKNOWN)
  2855.               dclerr("-- expected letter range",NPNULL);
  2856. !           setimpl(vartype, varleng, 'a', 'z'); } break;
  2857.   case 126:
  2858. ! /* # line 724 "gram.in" */
  2859. ! { needkwd = 1; } break;
  2860.   case 130:
  2861. ! /* # line 733 "gram.in" */
  2862. ! { setimpl(vartype, varleng, yypvt[-0].ival, yypvt[-0].ival); } break;
  2863.   case 131:
  2864. ! /* # line 735 "gram.in" */
  2865. ! { setimpl(vartype, varleng, yypvt[-2].ival, yypvt[-0].ival); } break;
  2866.   case 132:
  2867. ! /* # line 739 "gram.in" */
  2868.   { if(toklen!=1 || token[0]<'a' || token[0]>'z')
  2869.               {
  2870.               dclerr("implicit item must be single letter", NPNULL);
  2871. --- 1856,1964 ----
  2872.               eqvclass[np->vardesc.varno].eqvinit = YES;
  2873.             else if(np->vstg!=STGINIT && np->vstg!=STGBSS)
  2874.               dclerr("inconsistent storage classes", np);
  2875. !           yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL);
  2876. !         ;
  2877. !     break;}
  2878.   case 107:
  2879. ! #line 641 "gram.y"
  2880.   { chainp p; struct Impldoblock *q;
  2881.           pop_datastack();
  2882.           q = ALLOC(Impldoblock);
  2883.           q->tag = TIMPLDO;
  2884. !         (q->varnp = (Namep) (yyvsp[-1].chval->datap))->vimpldovar = 1;
  2885. !         p = yyvsp[-1].chval->nextp;
  2886.           if(p)  { q->implb = (expptr)(p->datap); p = p->nextp; }
  2887.           if(p)  { q->impub = (expptr)(p->datap); p = p->nextp; }
  2888.           if(p)  { q->impstep = (expptr)(p->datap); }
  2889. !         frchain( & (yyvsp[-1].chval) );
  2890.           yyval.chval = mkchain((char *)q, CHNULL);
  2891. !         q->datalist = hookup(yyvsp[-3].chval, yyval.chval);
  2892. !         ;
  2893. !     break;}
  2894.   case 108:
  2895. ! #line 657 "gram.y"
  2896.   { if (!datastack)
  2897.               curdtp = 0;
  2898.             datastack = mkchain((char *)curdtp, datastack);
  2899. !           curdtp = yyvsp[0].chval; curdtelt = 0;
  2900. !           ;
  2901. !     break;}
  2902.   case 109:
  2903. ! #line 663 "gram.y"
  2904. ! { yyval.chval = hookup(yyvsp[-2].chval, yyvsp[0].chval); ;
  2905. !     break;}
  2906.   case 110:
  2907. ! #line 667 "gram.y"
  2908. ! { ndim = 0; ;
  2909. !     break;}
  2910.   case 112:
  2911. ! #line 671 "gram.y"
  2912. ! { ndim = 0; ;
  2913. !     break;}
  2914.   case 115:
  2915. ! #line 676 "gram.y"
  2916.   {
  2917.             if(ndim == maxdim)
  2918.               err("too many dimensions");
  2919.             else if(ndim < maxdim)
  2920.               { dims[ndim].lb = 0;
  2921. !               dims[ndim].ub = yyvsp[0].expval;
  2922.               }
  2923.             ++ndim;
  2924. !         ;
  2925. !     break;}
  2926.   case 116:
  2927. ! #line 686 "gram.y"
  2928.   {
  2929.             if(ndim == maxdim)
  2930.               err("too many dimensions");
  2931.             else if(ndim < maxdim)
  2932. !             { dims[ndim].lb = yyvsp[-2].expval;
  2933. !               dims[ndim].ub = yyvsp[0].expval;
  2934.               }
  2935.             ++ndim;
  2936. !         ;
  2937. !     break;}
  2938.   case 117:
  2939. ! #line 698 "gram.y"
  2940. ! { yyval.expval = 0; ;
  2941. !     break;}
  2942.   case 119:
  2943. ! #line 703 "gram.y"
  2944. ! { nstars = 1; labarray[0] = yyvsp[0].labval; ;
  2945. !     break;}
  2946.   case 120:
  2947. ! #line 705 "gram.y"
  2948. ! { if(nstars < maxlablist)  labarray[nstars++] = yyvsp[0].labval; ;
  2949. !     break;}
  2950.   case 121:
  2951. ! #line 709 "gram.y"
  2952. ! { yyval.labval = execlab( convci(toklen, token) ); ;
  2953. !     break;}
  2954.   case 122:
  2955. ! #line 713 "gram.y"
  2956. ! { NO66("IMPLICIT statement"); ;
  2957. !     break;}
  2958.   case 125:
  2959. ! #line 719 "gram.y"
  2960.   { if (vartype != TYUNKNOWN)
  2961.               dclerr("-- expected letter range",NPNULL);
  2962. !           setimpl(vartype, varleng, 'a', 'z'); ;
  2963. !     break;}
  2964.   case 126:
  2965. ! #line 724 "gram.y"
  2966. ! { needkwd = 1; ;
  2967. !     break;}
  2968.   case 130:
  2969. ! #line 733 "gram.y"
  2970. ! { setimpl(vartype, varleng, yyvsp[0].ival, yyvsp[0].ival); ;
  2971. !     break;}
  2972.   case 131:
  2973. ! #line 735 "gram.y"
  2974. ! { setimpl(vartype, varleng, yyvsp[-2].ival, yyvsp[0].ival); ;
  2975. !     break;}
  2976.   case 132:
  2977. ! #line 739 "gram.y"
  2978.   { if(toklen!=1 || token[0]<'a' || token[0]>'z')
  2979.               {
  2980.               dclerr("implicit item must be single letter", NPNULL);
  2981. ***************
  2982. *** 1301,1328 ****
  2983.               yyval.ival = 0;
  2984.               }
  2985.             else yyval.ival = token[0];
  2986. !         } break;
  2987.   case 135:
  2988. ! /* # line 753 "gram.in" */
  2989.   {
  2990. !         if(yypvt[-2].namval->vclass == CLUNKNOWN)
  2991.               {
  2992. !             yypvt[-2].namval->vclass = CLNAMELIST;
  2993. !             yypvt[-2].namval->vtype = TYINT;
  2994. !             yypvt[-2].namval->vstg = STGBSS;
  2995. !             yypvt[-2].namval->varxptr.namelist = yypvt[-0].chval;
  2996. !             yypvt[-2].namval->vardesc.varno = ++lastvarno;
  2997.               }
  2998. !         else dclerr("cannot be a namelist name", yypvt[-2].namval);
  2999. !         } break;
  3000.   case 136:
  3001. ! /* # line 767 "gram.in" */
  3002. ! { yyval.chval = mkchain((char *)yypvt[-0].namval, CHNULL); } break;
  3003.   case 137:
  3004. ! /* # line 769 "gram.in" */
  3005. ! { yyval.chval = hookup(yypvt[-2].chval, mkchain((char *)yypvt[-0].namval, CHNULL)); } break;
  3006.   case 138:
  3007. ! /* # line 773 "gram.in" */
  3008.   { switch(parstate)
  3009.               {
  3010.               case OUTSIDE:    newproc();
  3011. --- 1965,1996 ----
  3012.               yyval.ival = 0;
  3013.               }
  3014.             else yyval.ival = token[0];
  3015. !         ;
  3016. !     break;}
  3017.   case 135:
  3018. ! #line 753 "gram.y"
  3019.   {
  3020. !         if(yyvsp[-2].namval->vclass == CLUNKNOWN)
  3021.               {
  3022. !             yyvsp[-2].namval->vclass = CLNAMELIST;
  3023. !             yyvsp[-2].namval->vtype = TYINT;
  3024. !             yyvsp[-2].namval->vstg = STGBSS;
  3025. !             yyvsp[-2].namval->varxptr.namelist = yyvsp[0].chval;
  3026. !             yyvsp[-2].namval->vardesc.varno = ++lastvarno;
  3027.               }
  3028. !         else dclerr("cannot be a namelist name", yyvsp[-2].namval);
  3029. !         ;
  3030. !     break;}
  3031.   case 136:
  3032. ! #line 767 "gram.y"
  3033. ! { yyval.chval = mkchain((char *)yyvsp[0].namval, CHNULL); ;
  3034. !     break;}
  3035.   case 137:
  3036. ! #line 769 "gram.y"
  3037. ! { yyval.chval = hookup(yyvsp[-2].chval, mkchain((char *)yyvsp[0].namval, CHNULL)); ;
  3038. !     break;}
  3039.   case 138:
  3040. ! #line 773 "gram.y"
  3041.   { switch(parstate)
  3042.               {
  3043.               case OUTSIDE:    newproc();
  3044. ***************
  3045. *** 1342,1636 ****
  3046.               default:
  3047.                   dclerr("declaration among executables", NPNULL);
  3048.               }
  3049. !         } break;
  3050.   case 139:
  3051. ! /* # line 795 "gram.in" */
  3052. ! { yyval.chval = 0; } break;
  3053.   case 140:
  3054. ! /* # line 797 "gram.in" */
  3055. ! { yyval.chval = revchain(yypvt[-0].chval); } break;
  3056.   case 141:
  3057. ! /* # line 801 "gram.in" */
  3058. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break;
  3059.   case 142:
  3060. ! /* # line 803 "gram.in" */
  3061. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, yypvt[-2].chval); } break;
  3062.   case 144:
  3063. ! /* # line 808 "gram.in" */
  3064. ! { yyval.expval = yypvt[-1].expval; if (yyval.expval->tag == TPRIM)
  3065. !                     yyval.expval->primblock.parenused = 1; } break;
  3066.   case 148:
  3067. ! /* # line 816 "gram.in" */
  3068. ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;
  3069.   case 149:
  3070. ! /* # line 818 "gram.in" */
  3071. ! { yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break;
  3072.   case 150:
  3073. ! /* # line 820 "gram.in" */
  3074. ! { yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break;
  3075.   case 151:
  3076. ! /* # line 822 "gram.in" */
  3077. ! { yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break;
  3078.   case 152:
  3079. ! /* # line 824 "gram.in" */
  3080. ! { if(yypvt[-1].ival == OPMINUS)
  3081. !             yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL);
  3082. !           else     yyval.expval = yypvt[-0].expval;
  3083. !         } break;
  3084.   case 153:
  3085. ! /* # line 829 "gram.in" */
  3086. ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;
  3087.   case 154:
  3088. ! /* # line 831 "gram.in" */
  3089.   { NO66(".EQV. operator");
  3090. !           yyval.expval = mkexpr(OPEQV, yypvt[-2].expval,yypvt[-0].expval); } break;
  3091.   case 155:
  3092. ! /* # line 834 "gram.in" */
  3093.   { NO66(".NEQV. operator");
  3094. !           yyval.expval = mkexpr(OPNEQV, yypvt[-2].expval, yypvt[-0].expval); } break;
  3095.   case 156:
  3096. ! /* # line 837 "gram.in" */
  3097. ! { yyval.expval = mkexpr(OPOR, yypvt[-2].expval, yypvt[-0].expval); } break;
  3098.   case 157:
  3099. ! /* # line 839 "gram.in" */
  3100. ! { yyval.expval = mkexpr(OPAND, yypvt[-2].expval, yypvt[-0].expval); } break;
  3101.   case 158:
  3102. ! /* # line 841 "gram.in" */
  3103. ! { yyval.expval = mkexpr(OPNOT, yypvt[-0].expval, ENULL); } break;
  3104.   case 159:
  3105. ! /* # line 843 "gram.in" */
  3106.   { NO66("concatenation operator //");
  3107. !           yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;
  3108.   case 160:
  3109. ! /* # line 847 "gram.in" */
  3110. ! { yyval.ival = OPPLUS; } break;
  3111.   case 161:
  3112. ! /* # line 848 "gram.in" */
  3113. ! { yyval.ival = OPMINUS; } break;
  3114.   case 162:
  3115. ! /* # line 851 "gram.in" */
  3116. ! { yyval.ival = OPEQ; } break;
  3117.   case 163:
  3118. ! /* # line 852 "gram.in" */
  3119. ! { yyval.ival = OPGT; } break;
  3120.   case 164:
  3121. ! /* # line 853 "gram.in" */
  3122. ! { yyval.ival = OPLT; } break;
  3123.   case 165:
  3124. ! /* # line 854 "gram.in" */
  3125. ! { yyval.ival = OPGE; } break;
  3126.   case 166:
  3127. ! /* # line 855 "gram.in" */
  3128. ! { yyval.ival = OPLE; } break;
  3129.   case 167:
  3130. ! /* # line 856 "gram.in" */
  3131. ! { yyval.ival = OPNE; } break;
  3132.   case 168:
  3133. ! /* # line 860 "gram.in" */
  3134. ! { yyval.expval = mkprim(yypvt[-0].namval, LBNULL, CHNULL); } break;
  3135.   case 169:
  3136. ! /* # line 862 "gram.in" */
  3137.   { NO66("substring operator :");
  3138. !           yyval.expval = mkprim(yypvt[-1].namval, LBNULL, yypvt[-0].chval); } break;
  3139.   case 170:
  3140. ! /* # line 865 "gram.in" */
  3141. ! { yyval.expval = mkprim(yypvt[-3].namval, mklist(yypvt[-1].chval), CHNULL); } break;
  3142.   case 171:
  3143. ! /* # line 867 "gram.in" */
  3144.   { NO66("substring operator :");
  3145. !           yyval.expval = mkprim(yypvt[-4].namval, mklist(yypvt[-2].chval), yypvt[-0].chval); } break;
  3146.   case 172:
  3147. ! /* # line 872 "gram.in" */
  3148. ! { yyval.chval = mkchain((char *)yypvt[-3].expval, mkchain((char *)yypvt[-1].expval,CHNULL)); } break;
  3149.   case 173:
  3150. ! /* # line 876 "gram.in" */
  3151. ! { yyval.expval = 0; } break;
  3152.   case 175:
  3153. ! /* # line 881 "gram.in" */
  3154. ! { if(yypvt[-0].namval->vclass == CLPARAM)
  3155.               yyval.expval = (expptr) cpexpr(
  3156. !                 ( (struct Paramblock *) (yypvt[-0].namval) ) -> paramval);
  3157. !         } break;
  3158.   case 177:
  3159. ! /* # line 888 "gram.in" */
  3160. ! { yyval.expval = mklogcon(1); } break;
  3161.   case 178:
  3162. ! /* # line 889 "gram.in" */
  3163. ! { yyval.expval = mklogcon(0); } break;
  3164.   case 179:
  3165. ! /* # line 890 "gram.in" */
  3166. ! { yyval.expval = mkstrcon(toklen, token); } break;
  3167.   case 180:
  3168. ! /* # line 891 "gram.in" */
  3169. !  { yyval.expval = mkintcon( convci(toklen, token) ); } break;
  3170.   case 181:
  3171. ! /* # line 892 "gram.in" */
  3172. !  { yyval.expval = mkrealcon(tyreal, token); } break;
  3173.   case 182:
  3174. ! /* # line 893 "gram.in" */
  3175. !  { yyval.expval = mkrealcon(TYDREAL, token); } break;
  3176.   case 184:
  3177. ! /* # line 898 "gram.in" */
  3178. ! { yyval.expval = mkcxcon(yypvt[-3].expval,yypvt[-1].expval); } break;
  3179.   case 185:
  3180. ! /* # line 902 "gram.in" */
  3181.   { NOEXT("hex constant");
  3182. !           yyval.expval = mkbitcon(4, toklen, token); } break;
  3183.   case 186:
  3184. ! /* # line 905 "gram.in" */
  3185.   { NOEXT("octal constant");
  3186. !           yyval.expval = mkbitcon(3, toklen, token); } break;
  3187.   case 187:
  3188. ! /* # line 908 "gram.in" */
  3189.   { NOEXT("binary constant");
  3190. !           yyval.expval = mkbitcon(1, toklen, token); } break;
  3191.   case 189:
  3192. ! /* # line 914 "gram.in" */
  3193. ! { yyval.expval = yypvt[-1].expval; } break;
  3194.   case 192:
  3195. ! /* # line 920 "gram.in" */
  3196. ! { yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;
  3197.   case 193:
  3198. ! /* # line 922 "gram.in" */
  3199. ! { yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break;
  3200.   case 194:
  3201. ! /* # line 924 "gram.in" */
  3202. ! { yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break;
  3203.   case 195:
  3204. ! /* # line 926 "gram.in" */
  3205. ! { yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break;
  3206.   case 196:
  3207. ! /* # line 928 "gram.in" */
  3208. ! { if(yypvt[-1].ival == OPMINUS)
  3209. !             yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL);
  3210. !           else    yyval.expval = yypvt[-0].expval;
  3211. !         } break;
  3212.   case 197:
  3213. ! /* # line 933 "gram.in" */
  3214.   { NO66("concatenation operator //");
  3215. !           yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;
  3216.   case 199:
  3217. ! /* # line 938 "gram.in" */
  3218.   {
  3219. !         if(yypvt[-3].labval->labdefined)
  3220.               execerr("no backward DO loops", CNULL);
  3221. !         yypvt[-3].labval->blklevel = blklevel+1;
  3222. !         exdo(yypvt[-3].labval->labelno, NPNULL, yypvt[-0].chval);
  3223. !         } break;
  3224.   case 200:
  3225. ! /* # line 945 "gram.in" */
  3226.   {
  3227. !         exdo((int)(ctls - ctlstack - 2), NPNULL, yypvt[-0].chval);
  3228.           NOEXT("DO without label");
  3229. !         } break;
  3230.   case 201:
  3231. ! /* # line 950 "gram.in" */
  3232. ! { exenddo(NPNULL); } break;
  3233.   case 202:
  3234. ! /* # line 952 "gram.in" */
  3235. ! { exendif();  thiswasbranch = NO; } break;
  3236.   case 204:
  3237. ! /* # line 955 "gram.in" */
  3238. ! { exelif(yypvt[-2].expval); lastwasbranch = NO; } break;
  3239.   case 205:
  3240. ! /* # line 957 "gram.in" */
  3241. ! { exelse(); lastwasbranch = NO; } break;
  3242.   case 206:
  3243. ! /* # line 959 "gram.in" */
  3244. ! { exendif(); lastwasbranch = NO; } break;
  3245.   case 207:
  3246. ! /* # line 963 "gram.in" */
  3247. ! { exif(yypvt[-1].expval); } break;
  3248.   case 208:
  3249. ! /* # line 967 "gram.in" */
  3250. ! { yyval.chval = mkchain((char *)yypvt[-2].namval, yypvt[-0].chval); } break;
  3251.   case 210:
  3252. ! /* # line 972 "gram.in" */
  3253. ! { yyval.chval = mkchain(CNULL, (chainp)yypvt[-1].expval); } break;
  3254.   case 211:
  3255. ! /* # line 976 "gram.in" */
  3256. ! { exequals((struct Primblock *)yypvt[-2].expval, yypvt[-0].expval); } break;
  3257.   case 212:
  3258. ! /* # line 978 "gram.in" */
  3259. ! { exassign(yypvt[-0].namval, yypvt[-2].labval); } break;
  3260.   case 215:
  3261. ! /* # line 982 "gram.in" */
  3262. ! { inioctl = NO; } break;
  3263.   case 216:
  3264. ! /* # line 984 "gram.in" */
  3265. ! { exarif(yypvt[-6].expval, yypvt[-4].labval, yypvt[-2].labval, yypvt[-0].labval);  thiswasbranch = YES; } break;
  3266.   case 217:
  3267. ! /* # line 986 "gram.in" */
  3268. ! { excall(yypvt[-0].namval, LBNULL, 0, labarray); } break;
  3269.   case 218:
  3270. ! /* # line 988 "gram.in" */
  3271. ! { excall(yypvt[-2].namval, LBNULL, 0, labarray); } break;
  3272.   case 219:
  3273. ! /* # line 990 "gram.in" */
  3274.   { if(nstars < maxlablist)
  3275. !             excall(yypvt[-3].namval, mklist(revchain(yypvt[-1].chval)), nstars, labarray);
  3276.             else
  3277.               many("alternate returns", 'l', maxlablist);
  3278. !         } break;
  3279.   case 220:
  3280. ! /* # line 996 "gram.in" */
  3281. ! { exreturn(yypvt[-0].expval);  thiswasbranch = YES; } break;
  3282.   case 221:
  3283. ! /* # line 998 "gram.in" */
  3284. ! { exstop(yypvt[-2].ival, yypvt[-0].expval);  thiswasbranch = yypvt[-2].ival; } break;
  3285.   case 222:
  3286. ! /* # line 1002 "gram.in" */
  3287. ! { yyval.labval = mklabel( convci(toklen, token) ); } break;
  3288.   case 223:
  3289. ! /* # line 1006 "gram.in" */
  3290.   { if(parstate == OUTSIDE)
  3291.               {
  3292.               newproc();
  3293.               startproc(ESNULL, CLMAIN);
  3294.               }
  3295. !         } break;
  3296.   case 224:
  3297. ! /* # line 1015 "gram.in" */
  3298. ! { exgoto(yypvt[-0].labval);  thiswasbranch = YES; } break;
  3299.   case 225:
  3300. ! /* # line 1017 "gram.in" */
  3301. ! { exasgoto(yypvt[-0].namval);  thiswasbranch = YES; } break;
  3302.   case 226:
  3303. ! /* # line 1019 "gram.in" */
  3304. ! { exasgoto(yypvt[-4].namval);  thiswasbranch = YES; } break;
  3305.   case 227:
  3306. ! /* # line 1021 "gram.in" */
  3307.   { if(nstars < maxlablist)
  3308. !             putcmgo(putx(fixtype(yypvt[-0].expval)), nstars, labarray);
  3309.             else
  3310.               many("labels in computed GOTO list", 'l', maxlablist);
  3311. !         } break;
  3312.   case 230:
  3313. ! /* # line 1033 "gram.in" */
  3314. ! { nstars = 0; yyval.namval = yypvt[-0].namval; } break;
  3315.   case 231:
  3316. ! /* # line 1037 "gram.in" */
  3317. ! { yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval,CHNULL) : CHNULL; } break;
  3318.   case 232:
  3319. ! /* # line 1039 "gram.in" */
  3320. ! { yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval, yypvt[-2].chval) : yypvt[-2].chval; } break;
  3321.   case 234:
  3322. ! /* # line 1044 "gram.in" */
  3323. ! { if(nstars < maxlablist) labarray[nstars++] = yypvt[-0].labval; yyval.expval = 0; } break;
  3324.   case 235:
  3325. ! /* # line 1048 "gram.in" */
  3326. ! { yyval.ival = 0; } break;
  3327.   case 236:
  3328. ! /* # line 1050 "gram.in" */
  3329. ! { yyval.ival = 2; } break;
  3330.   case 237:
  3331. ! /* # line 1054 "gram.in" */
  3332. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break;
  3333.   case 238:
  3334. ! /* # line 1056 "gram.in" */
  3335. ! { yyval.chval = hookup(yypvt[-2].chval, mkchain((char *)yypvt[-0].expval,CHNULL) ); } break;
  3336.   case 239:
  3337. ! /* # line 1060 "gram.in" */
  3338.   { if(parstate == OUTSIDE)
  3339.               {
  3340.               newproc();
  3341. --- 2010,2387 ----
  3342.               default:
  3343.                   dclerr("declaration among executables", NPNULL);
  3344.               }
  3345. !         ;
  3346. !     break;}
  3347.   case 139:
  3348. ! #line 795 "gram.y"
  3349. ! { yyval.chval = 0; ;
  3350. !     break;}
  3351.   case 140:
  3352. ! #line 797 "gram.y"
  3353. ! { yyval.chval = revchain(yyvsp[0].chval); ;
  3354. !     break;}
  3355.   case 141:
  3356. ! #line 801 "gram.y"
  3357. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ;
  3358. !     break;}
  3359.   case 142:
  3360. ! #line 803 "gram.y"
  3361. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval); ;
  3362. !     break;}
  3363.   case 144:
  3364. ! #line 808 "gram.y"
  3365. ! { yyval.expval = yyvsp[-1].expval; if (yyval.expval->tag == TPRIM)
  3366. !                     yyval.expval->primblock.parenused = 1; ;
  3367. !     break;}
  3368.   case 148:
  3369. ! #line 816 "gram.y"
  3370. ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ;
  3371. !     break;}
  3372.   case 149:
  3373. ! #line 818 "gram.y"
  3374. ! { yyval.expval = mkexpr(OPSTAR, yyvsp[-2].expval, yyvsp[0].expval); ;
  3375. !     break;}
  3376.   case 150:
  3377. ! #line 820 "gram.y"
  3378. ! { yyval.expval = mkexpr(OPSLASH, yyvsp[-2].expval, yyvsp[0].expval); ;
  3379. !     break;}
  3380.   case 151:
  3381. ! #line 822 "gram.y"
  3382. ! { yyval.expval = mkexpr(OPPOWER, yyvsp[-2].expval, yyvsp[0].expval); ;
  3383. !     break;}
  3384.   case 152:
  3385. ! #line 824 "gram.y"
  3386. ! { if(yyvsp[-1].ival == OPMINUS)
  3387. !             yyval.expval = mkexpr(OPNEG, yyvsp[0].expval, ENULL);
  3388. !           else     yyval.expval = yyvsp[0].expval;
  3389. !         ;
  3390. !     break;}
  3391.   case 153:
  3392. ! #line 829 "gram.y"
  3393. ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ;
  3394. !     break;}
  3395.   case 154:
  3396. ! #line 831 "gram.y"
  3397.   { NO66(".EQV. operator");
  3398. !           yyval.expval = mkexpr(OPEQV, yyvsp[-2].expval,yyvsp[0].expval); ;
  3399. !     break;}
  3400.   case 155:
  3401. ! #line 834 "gram.y"
  3402.   { NO66(".NEQV. operator");
  3403. !           yyval.expval = mkexpr(OPNEQV, yyvsp[-2].expval, yyvsp[0].expval); ;
  3404. !     break;}
  3405.   case 156:
  3406. ! #line 837 "gram.y"
  3407. ! { yyval.expval = mkexpr(OPOR, yyvsp[-2].expval, yyvsp[0].expval); ;
  3408. !     break;}
  3409.   case 157:
  3410. ! #line 839 "gram.y"
  3411. ! { yyval.expval = mkexpr(OPAND, yyvsp[-2].expval, yyvsp[0].expval); ;
  3412. !     break;}
  3413.   case 158:
  3414. ! #line 841 "gram.y"
  3415. ! { yyval.expval = mkexpr(OPNOT, yyvsp[0].expval, ENULL); ;
  3416. !     break;}
  3417.   case 159:
  3418. ! #line 843 "gram.y"
  3419.   { NO66("concatenation operator //");
  3420. !           yyval.expval = mkexpr(OPCONCAT, yyvsp[-2].expval, yyvsp[0].expval); ;
  3421. !     break;}
  3422.   case 160:
  3423. ! #line 847 "gram.y"
  3424. ! { yyval.ival = OPPLUS; ;
  3425. !     break;}
  3426.   case 161:
  3427. ! #line 848 "gram.y"
  3428. ! { yyval.ival = OPMINUS; ;
  3429. !     break;}
  3430.   case 162:
  3431. ! #line 851 "gram.y"
  3432. ! { yyval.ival = OPEQ; ;
  3433. !     break;}
  3434.   case 163:
  3435. ! #line 852 "gram.y"
  3436. ! { yyval.ival = OPGT; ;
  3437. !     break;}
  3438.   case 164:
  3439. ! #line 853 "gram.y"
  3440. ! { yyval.ival = OPLT; ;
  3441. !     break;}
  3442.   case 165:
  3443. ! #line 854 "gram.y"
  3444. ! { yyval.ival = OPGE; ;
  3445. !     break;}
  3446.   case 166:
  3447. ! #line 855 "gram.y"
  3448. ! { yyval.ival = OPLE; ;
  3449. !     break;}
  3450.   case 167:
  3451. ! #line 856 "gram.y"
  3452. ! { yyval.ival = OPNE; ;
  3453. !     break;}
  3454.   case 168:
  3455. ! #line 860 "gram.y"
  3456. ! { yyval.expval = mkprim(yyvsp[0].namval, LBNULL, CHNULL); ;
  3457. !     break;}
  3458.   case 169:
  3459. ! #line 862 "gram.y"
  3460.   { NO66("substring operator :");
  3461. !           yyval.expval = mkprim(yyvsp[-1].namval, LBNULL, yyvsp[0].chval); ;
  3462. !     break;}
  3463.   case 170:
  3464. ! #line 865 "gram.y"
  3465. ! { yyval.expval = mkprim(yyvsp[-3].namval, mklist(yyvsp[-1].chval), CHNULL); ;
  3466. !     break;}
  3467.   case 171:
  3468. ! #line 867 "gram.y"
  3469.   { NO66("substring operator :");
  3470. !           yyval.expval = mkprim(yyvsp[-4].namval, mklist(yyvsp[-2].chval), yyvsp[0].chval); ;
  3471. !     break;}
  3472.   case 172:
  3473. ! #line 872 "gram.y"
  3474. ! { yyval.chval = mkchain((char *)yyvsp[-3].expval, mkchain((char *)yyvsp[-1].expval,CHNULL)); ;
  3475. !     break;}
  3476.   case 173:
  3477. ! #line 876 "gram.y"
  3478. ! { yyval.expval = 0; ;
  3479. !     break;}
  3480.   case 175:
  3481. ! #line 881 "gram.y"
  3482. ! { if(yyvsp[0].namval->vclass == CLPARAM)
  3483.               yyval.expval = (expptr) cpexpr(
  3484. !                 ( (struct Paramblock *) (yyvsp[0].namval) ) -> paramval);
  3485. !         ;
  3486. !     break;}
  3487.   case 177:
  3488. ! #line 888 "gram.y"
  3489. ! { yyval.expval = mklogcon(1); ;
  3490. !     break;}
  3491.   case 178:
  3492. ! #line 889 "gram.y"
  3493. ! { yyval.expval = mklogcon(0); ;
  3494. !     break;}
  3495.   case 179:
  3496. ! #line 890 "gram.y"
  3497. ! { yyval.expval = mkstrcon(toklen, token); ;
  3498. !     break;}
  3499.   case 180:
  3500. ! #line 891 "gram.y"
  3501. ! { yyval.expval = mkintcon( convci(toklen, token) ); ;
  3502. !     break;}
  3503.   case 181:
  3504. ! #line 892 "gram.y"
  3505. ! { yyval.expval = mkrealcon(tyreal, token); ;
  3506. !     break;}
  3507.   case 182:
  3508. ! #line 893 "gram.y"
  3509. ! { yyval.expval = mkrealcon(TYDREAL, token); ;
  3510. !     break;}
  3511.   case 184:
  3512. ! #line 898 "gram.y"
  3513. ! { yyval.expval = mkcxcon(yyvsp[-3].expval,yyvsp[-1].expval); ;
  3514. !     break;}
  3515.   case 185:
  3516. ! #line 902 "gram.y"
  3517.   { NOEXT("hex constant");
  3518. !           yyval.expval = mkbitcon(4, toklen, token); ;
  3519. !     break;}
  3520.   case 186:
  3521. ! #line 905 "gram.y"
  3522.   { NOEXT("octal constant");
  3523. !           yyval.expval = mkbitcon(3, toklen, token); ;
  3524. !     break;}
  3525.   case 187:
  3526. ! #line 908 "gram.y"
  3527.   { NOEXT("binary constant");
  3528. !           yyval.expval = mkbitcon(1, toklen, token); ;
  3529. !     break;}
  3530.   case 189:
  3531. ! #line 914 "gram.y"
  3532. ! { yyval.expval = yyvsp[-1].expval; ;
  3533. !     break;}
  3534.   case 192:
  3535. ! #line 920 "gram.y"
  3536. ! { yyval.expval = mkexpr(yyvsp[-1].ival, yyvsp[-2].expval, yyvsp[0].expval); ;
  3537. !     break;}
  3538.   case 193:
  3539. ! #line 922 "gram.y"
  3540. ! { yyval.expval = mkexpr(OPSTAR, yyvsp[-2].expval, yyvsp[0].expval); ;
  3541. !     break;}
  3542.   case 194:
  3543. ! #line 924 "gram.y"
  3544. ! { yyval.expval = mkexpr(OPSLASH, yyvsp[-2].expval, yyvsp[0].expval); ;
  3545. !     break;}
  3546.   case 195:
  3547. ! #line 926 "gram.y"
  3548. ! { yyval.expval = mkexpr(OPPOWER, yyvsp[-2].expval, yyvsp[0].expval); ;
  3549. !     break;}
  3550.   case 196:
  3551. ! #line 928 "gram.y"
  3552. ! { if(yyvsp[-1].ival == OPMINUS)
  3553. !             yyval.expval = mkexpr(OPNEG, yyvsp[0].expval, ENULL);
  3554. !           else    yyval.expval = yyvsp[0].expval;
  3555. !         ;
  3556. !     break;}
  3557.   case 197:
  3558. ! #line 933 "gram.y"
  3559.   { NO66("concatenation operator //");
  3560. !           yyval.expval = mkexpr(OPCONCAT, yyvsp[-2].expval, yyvsp[0].expval); ;
  3561. !     break;}
  3562.   case 199:
  3563. ! #line 938 "gram.y"
  3564.   {
  3565. !         if(yyvsp[-3].labval->labdefined)
  3566.               execerr("no backward DO loops", CNULL);
  3567. !         yyvsp[-3].labval->blklevel = blklevel+1;
  3568. !         exdo(yyvsp[-3].labval->labelno, NPNULL, yyvsp[0].chval);
  3569. !         ;
  3570. !     break;}
  3571.   case 200:
  3572. ! #line 945 "gram.y"
  3573.   {
  3574. !         exdo((int)(ctls - ctlstack - 2), NPNULL, yyvsp[0].chval);
  3575.           NOEXT("DO without label");
  3576. !         ;
  3577. !     break;}
  3578.   case 201:
  3579. ! #line 950 "gram.y"
  3580. ! { exenddo(NPNULL); ;
  3581. !     break;}
  3582.   case 202:
  3583. ! #line 952 "gram.y"
  3584. ! { exendif();  thiswasbranch = NO; ;
  3585. !     break;}
  3586.   case 204:
  3587. ! #line 955 "gram.y"
  3588. ! { exelif(yyvsp[-2].expval); lastwasbranch = NO; ;
  3589. !     break;}
  3590.   case 205:
  3591. ! #line 957 "gram.y"
  3592. ! { exelse(); lastwasbranch = NO; ;
  3593. !     break;}
  3594.   case 206:
  3595. ! #line 959 "gram.y"
  3596. ! { exendif(); lastwasbranch = NO; ;
  3597. !     break;}
  3598.   case 207:
  3599. ! #line 963 "gram.y"
  3600. ! { exif(yyvsp[-1].expval); ;
  3601. !     break;}
  3602.   case 208:
  3603. ! #line 967 "gram.y"
  3604. ! { yyval.chval = mkchain((char *)yyvsp[-2].namval, yyvsp[0].chval); ;
  3605. !     break;}
  3606.   case 210:
  3607. ! #line 972 "gram.y"
  3608. ! { yyval.chval = mkchain(CNULL, (chainp)yyvsp[-1].expval); ;
  3609. !     break;}
  3610.   case 211:
  3611. ! #line 976 "gram.y"
  3612. ! { exequals((struct Primblock *)yyvsp[-2].expval, yyvsp[0].expval); ;
  3613. !     break;}
  3614.   case 212:
  3615. ! #line 978 "gram.y"
  3616. ! { exassign(yyvsp[0].namval, yyvsp[-2].labval); ;
  3617. !     break;}
  3618.   case 215:
  3619. ! #line 982 "gram.y"
  3620. ! { inioctl = NO; ;
  3621. !     break;}
  3622.   case 216:
  3623. ! #line 984 "gram.y"
  3624. ! { exarif(yyvsp[-6].expval, yyvsp[-4].labval, yyvsp[-2].labval, yyvsp[0].labval);  thiswasbranch = YES; ;
  3625. !     break;}
  3626.   case 217:
  3627. ! #line 986 "gram.y"
  3628. ! { excall(yyvsp[0].namval, LBNULL, 0, labarray); ;
  3629. !     break;}
  3630.   case 218:
  3631. ! #line 988 "gram.y"
  3632. ! { excall(yyvsp[-2].namval, LBNULL, 0, labarray); ;
  3633. !     break;}
  3634.   case 219:
  3635. ! #line 990 "gram.y"
  3636.   { if(nstars < maxlablist)
  3637. !             excall(yyvsp[-3].namval, mklist(revchain(yyvsp[-1].chval)), nstars, labarray);
  3638.             else
  3639.               many("alternate returns", 'l', maxlablist);
  3640. !         ;
  3641. !     break;}
  3642.   case 220:
  3643. ! #line 996 "gram.y"
  3644. ! { exreturn(yyvsp[0].expval);  thiswasbranch = YES; ;
  3645. !     break;}
  3646.   case 221:
  3647. ! #line 998 "gram.y"
  3648. ! { exstop(yyvsp[-2].ival, yyvsp[0].expval);  thiswasbranch = yyvsp[-2].ival; ;
  3649. !     break;}
  3650.   case 222:
  3651. ! #line 1002 "gram.y"
  3652. ! { yyval.labval = mklabel( convci(toklen, token) ); ;
  3653. !     break;}
  3654.   case 223:
  3655. ! #line 1006 "gram.y"
  3656.   { if(parstate == OUTSIDE)
  3657.               {
  3658.               newproc();
  3659.               startproc(ESNULL, CLMAIN);
  3660.               }
  3661. !         ;
  3662. !     break;}
  3663.   case 224:
  3664. ! #line 1015 "gram.y"
  3665. ! { exgoto(yyvsp[0].labval);  thiswasbranch = YES; ;
  3666. !     break;}
  3667.   case 225:
  3668. ! #line 1017 "gram.y"
  3669. ! { exasgoto(yyvsp[0].namval);  thiswasbranch = YES; ;
  3670. !     break;}
  3671.   case 226:
  3672. ! #line 1019 "gram.y"
  3673. ! { exasgoto(yyvsp[-4].namval);  thiswasbranch = YES; ;
  3674. !     break;}
  3675.   case 227:
  3676. ! #line 1021 "gram.y"
  3677.   { if(nstars < maxlablist)
  3678. !             putcmgo(putx(fixtype(yyvsp[0].expval)), nstars, labarray);
  3679.             else
  3680.               many("labels in computed GOTO list", 'l', maxlablist);
  3681. !         ;
  3682. !     break;}
  3683.   case 230:
  3684. ! #line 1033 "gram.y"
  3685. ! { nstars = 0; yyval.namval = yyvsp[0].namval; ;
  3686. !     break;}
  3687.   case 231:
  3688. ! #line 1037 "gram.y"
  3689. ! { yyval.chval = yyvsp[0].expval ? mkchain((char *)yyvsp[0].expval,CHNULL) : CHNULL; ;
  3690. !     break;}
  3691.   case 232:
  3692. ! #line 1039 "gram.y"
  3693. ! { yyval.chval = yyvsp[0].expval ? mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval) : yyvsp[-2].chval; ;
  3694. !     break;}
  3695.   case 234:
  3696. ! #line 1044 "gram.y"
  3697. ! { if(nstars < maxlablist) labarray[nstars++] = yyvsp[0].labval; yyval.expval = 0; ;
  3698. !     break;}
  3699.   case 235:
  3700. ! #line 1048 "gram.y"
  3701. ! { yyval.ival = 0; ;
  3702. !     break;}
  3703.   case 236:
  3704. ! #line 1050 "gram.y"
  3705. ! { yyval.ival = 2; ;
  3706. !     break;}
  3707.   case 237:
  3708. ! #line 1054 "gram.y"
  3709. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ;
  3710. !     break;}
  3711.   case 238:
  3712. ! #line 1056 "gram.y"
  3713. ! { yyval.chval = hookup(yyvsp[-2].chval, mkchain((char *)yyvsp[0].expval,CHNULL) ); ;
  3714. !     break;}
  3715.   case 239:
  3716. ! #line 1060 "gram.y"
  3717.   { if(parstate == OUTSIDE)
  3718.               {
  3719.               newproc();
  3720. ***************
  3721. *** 1640,1829 ****
  3722.   /* This next statement depends on the ordering of the state table encoding */
  3723.   
  3724.             if(parstate < INDATA) enddcl();
  3725. !         } break;
  3726.   case 240:
  3727. ! /* # line 1073 "gram.in" */
  3728. ! { intonly = YES; } break;
  3729.   case 241:
  3730. ! /* # line 1077 "gram.in" */
  3731. ! { intonly = NO; } break;
  3732.   case 242:
  3733. ! /* # line 1082 "gram.in" */
  3734. ! { endio(); } break;
  3735.   case 244:
  3736. ! /* # line 1087 "gram.in" */
  3737. ! { ioclause(IOSUNIT, yypvt[-0].expval); endioctl(); } break;
  3738.   case 245:
  3739. ! /* # line 1089 "gram.in" */
  3740. ! { ioclause(IOSUNIT, ENULL); endioctl(); } break;
  3741.   case 246:
  3742. ! /* # line 1091 "gram.in" */
  3743. ! { ioclause(IOSUNIT, IOSTDERR); endioctl(); } break;
  3744.   case 248:
  3745. ! /* # line 1094 "gram.in" */
  3746. ! { doio(CHNULL); } break;
  3747.   case 249:
  3748. ! /* # line 1096 "gram.in" */
  3749. ! { doio(CHNULL); } break;
  3750.   case 250:
  3751. ! /* # line 1098 "gram.in" */
  3752. ! { doio(revchain(yypvt[-0].chval)); } break;
  3753.   case 251:
  3754. ! /* # line 1100 "gram.in" */
  3755. ! { doio(revchain(yypvt[-0].chval)); } break;
  3756.   case 252:
  3757. ! /* # line 1102 "gram.in" */
  3758. ! { doio(revchain(yypvt[-0].chval)); } break;
  3759.   case 253:
  3760. ! /* # line 1104 "gram.in" */
  3761. ! { doio(CHNULL); } break;
  3762.   case 254:
  3763. ! /* # line 1106 "gram.in" */
  3764. ! { doio(revchain(yypvt[-0].chval)); } break;
  3765.   case 255:
  3766. ! /* # line 1108 "gram.in" */
  3767. ! { doio(CHNULL); } break;
  3768.   case 256:
  3769. ! /* # line 1110 "gram.in" */
  3770. ! { doio(revchain(yypvt[-0].chval)); } break;
  3771.   case 258:
  3772. ! /* # line 1117 "gram.in" */
  3773. ! { iostmt = IOBACKSPACE; } break;
  3774.   case 259:
  3775. ! /* # line 1119 "gram.in" */
  3776. ! { iostmt = IOREWIND; } break;
  3777.   case 260:
  3778. ! /* # line 1121 "gram.in" */
  3779. ! { iostmt = IOENDFILE; } break;
  3780.   case 262:
  3781. ! /* # line 1128 "gram.in" */
  3782. ! { iostmt = IOINQUIRE; } break;
  3783.   case 263:
  3784. ! /* # line 1130 "gram.in" */
  3785. ! { iostmt = IOOPEN; } break;
  3786.   case 264:
  3787. ! /* # line 1132 "gram.in" */
  3788. ! { iostmt = IOCLOSE; } break;
  3789.   case 265:
  3790. ! /* # line 1136 "gram.in" */
  3791.   {
  3792.           ioclause(IOSUNIT, ENULL);
  3793. !         ioclause(IOSFMT, yypvt[-0].expval);
  3794.           endioctl();
  3795. !         } break;
  3796.   case 266:
  3797. ! /* # line 1142 "gram.in" */
  3798.   {
  3799.           ioclause(IOSUNIT, ENULL);
  3800.           ioclause(IOSFMT, ENULL);
  3801.           endioctl();
  3802. !         } break;
  3803.   case 267:
  3804. ! /* # line 1150 "gram.in" */
  3805.   {
  3806. !           ioclause(IOSUNIT, yypvt[-1].expval);
  3807.             endioctl();
  3808. !         } break;
  3809.   case 268:
  3810. ! /* # line 1155 "gram.in" */
  3811. ! { endioctl(); } break;
  3812.   case 271:
  3813. ! /* # line 1163 "gram.in" */
  3814. ! { ioclause(IOSPOSITIONAL, yypvt[-0].expval); } break;
  3815.   case 272:
  3816. ! /* # line 1165 "gram.in" */
  3817. ! { ioclause(IOSPOSITIONAL, ENULL); } break;
  3818.   case 273:
  3819. ! /* # line 1167 "gram.in" */
  3820. ! { ioclause(IOSPOSITIONAL, IOSTDERR); } break;
  3821.   case 274:
  3822. ! /* # line 1169 "gram.in" */
  3823. ! { ioclause(yypvt[-1].ival, yypvt[-0].expval); } break;
  3824.   case 275:
  3825. ! /* # line 1171 "gram.in" */
  3826. ! { ioclause(yypvt[-1].ival, ENULL); } break;
  3827.   case 276:
  3828. ! /* # line 1173 "gram.in" */
  3829. ! { ioclause(yypvt[-1].ival, IOSTDERR); } break;
  3830.   case 277:
  3831. ! /* # line 1177 "gram.in" */
  3832. ! { yyval.ival = iocname(); } break;
  3833.   case 278:
  3834. ! /* # line 1181 "gram.in" */
  3835. ! { iostmt = IOREAD; } break;
  3836.   case 279:
  3837. ! /* # line 1185 "gram.in" */
  3838. ! { iostmt = IOWRITE; } break;
  3839.   case 280:
  3840. ! /* # line 1189 "gram.in" */
  3841.   {
  3842.           iostmt = IOWRITE;
  3843.           ioclause(IOSUNIT, ENULL);
  3844. !         ioclause(IOSFMT, yypvt[-1].expval);
  3845.           endioctl();
  3846. !         } break;
  3847.   case 281:
  3848. ! /* # line 1196 "gram.in" */
  3849.   {
  3850.           iostmt = IOWRITE;
  3851.           ioclause(IOSUNIT, ENULL);
  3852.           ioclause(IOSFMT, ENULL);
  3853.           endioctl();
  3854. !         } break;
  3855.   case 282:
  3856. ! /* # line 1205 "gram.in" */
  3857. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break;
  3858.   case 283:
  3859. ! /* # line 1207 "gram.in" */
  3860. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break;
  3861.   case 284:
  3862. ! /* # line 1211 "gram.in" */
  3863. ! { yyval.tagval = (tagptr) yypvt[-0].expval; } break;
  3864.   case 285:
  3865. ! /* # line 1213 "gram.in" */
  3866. ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval,revchain(yypvt[-3].chval)); } break;
  3867.   case 286:
  3868. ! /* # line 1217 "gram.in" */
  3869. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break;
  3870.   case 287:
  3871. ! /* # line 1219 "gram.in" */
  3872. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break;
  3873.   case 289:
  3874. ! /* # line 1224 "gram.in" */
  3875. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break;
  3876.   case 290:
  3877. ! /* # line 1226 "gram.in" */
  3878. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break;
  3879.   case 291:
  3880. ! /* # line 1228 "gram.in" */
  3881. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break;
  3882.   case 292:
  3883. ! /* # line 1230 "gram.in" */
  3884. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break;
  3885.   case 293:
  3886. ! /* # line 1232 "gram.in" */
  3887. ! { yyval.chval = mkchain((char *)yypvt[-0].expval, yypvt[-2].chval); } break;
  3888.   case 294:
  3889. ! /* # line 1234 "gram.in" */
  3890. ! { yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break;
  3891.   case 295:
  3892. ! /* # line 1238 "gram.in" */
  3893. ! { yyval.tagval = (tagptr) yypvt[-0].expval; } break;
  3894.   case 296:
  3895. ! /* # line 1240 "gram.in" */
  3896. ! { yyval.tagval = (tagptr) yypvt[-1].expval; } break;
  3897.   case 297:
  3898. ! /* # line 1242 "gram.in" */
  3899. ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].expval, CHNULL) ); } break;
  3900.   case 298:
  3901. ! /* # line 1244 "gram.in" */
  3902. ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].tagval, CHNULL) ); } break;
  3903.   case 299:
  3904. ! /* # line 1246 "gram.in" */
  3905. ! { yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, revchain(yypvt[-3].chval)); } break;
  3906.   case 300:
  3907. ! /* # line 1250 "gram.in" */
  3908. ! { startioctl(); } break;
  3909. !     }
  3910. !     goto yystack;  /* stack new state and value */
  3911.   }
  3912. --- 2391,2831 ----
  3913.   /* This next statement depends on the ordering of the state table encoding */
  3914.   
  3915.             if(parstate < INDATA) enddcl();
  3916. !         ;
  3917. !     break;}
  3918.   case 240:
  3919. ! #line 1073 "gram.y"
  3920. ! { intonly = YES; ;
  3921. !     break;}
  3922.   case 241:
  3923. ! #line 1077 "gram.y"
  3924. ! { intonly = NO; ;
  3925. !     break;}
  3926.   case 242:
  3927. ! #line 1082 "gram.y"
  3928. ! { endio(); ;
  3929. !     break;}
  3930.   case 244:
  3931. ! #line 1087 "gram.y"
  3932. ! { ioclause(IOSUNIT, yyvsp[0].expval); endioctl(); ;
  3933. !     break;}
  3934.   case 245:
  3935. ! #line 1089 "gram.y"
  3936. ! { ioclause(IOSUNIT, ENULL); endioctl(); ;
  3937. !     break;}
  3938.   case 246:
  3939. ! #line 1091 "gram.y"
  3940. ! { ioclause(IOSUNIT, IOSTDERR); endioctl(); ;
  3941. !     break;}
  3942.   case 248:
  3943. ! #line 1094 "gram.y"
  3944. ! { doio(CHNULL); ;
  3945. !     break;}
  3946.   case 249:
  3947. ! #line 1096 "gram.y"
  3948. ! { doio(CHNULL); ;
  3949. !     break;}
  3950.   case 250:
  3951. ! #line 1098 "gram.y"
  3952. ! { doio(revchain(yyvsp[0].chval)); ;
  3953. !     break;}
  3954.   case 251:
  3955. ! #line 1100 "gram.y"
  3956. ! { doio(revchain(yyvsp[0].chval)); ;
  3957. !     break;}
  3958.   case 252:
  3959. ! #line 1102 "gram.y"
  3960. ! { doio(revchain(yyvsp[0].chval)); ;
  3961. !     break;}
  3962.   case 253:
  3963. ! #line 1104 "gram.y"
  3964. ! { doio(CHNULL); ;
  3965. !     break;}
  3966.   case 254:
  3967. ! #line 1106 "gram.y"
  3968. ! { doio(revchain(yyvsp[0].chval)); ;
  3969. !     break;}
  3970.   case 255:
  3971. ! #line 1108 "gram.y"
  3972. ! { doio(CHNULL); ;
  3973. !     break;}
  3974.   case 256:
  3975. ! #line 1110 "gram.y"
  3976. ! { doio(revchain(yyvsp[0].chval)); ;
  3977. !     break;}
  3978.   case 258:
  3979. ! #line 1117 "gram.y"
  3980. ! { iostmt = IOBACKSPACE; ;
  3981. !     break;}
  3982.   case 259:
  3983. ! #line 1119 "gram.y"
  3984. ! { iostmt = IOREWIND; ;
  3985. !     break;}
  3986.   case 260:
  3987. ! #line 1121 "gram.y"
  3988. ! { iostmt = IOENDFILE; ;
  3989. !     break;}
  3990.   case 262:
  3991. ! #line 1128 "gram.y"
  3992. ! { iostmt = IOINQUIRE; ;
  3993. !     break;}
  3994.   case 263:
  3995. ! #line 1130 "gram.y"
  3996. ! { iostmt = IOOPEN; ;
  3997. !     break;}
  3998.   case 264:
  3999. ! #line 1132 "gram.y"
  4000. ! { iostmt = IOCLOSE; ;
  4001. !     break;}
  4002.   case 265:
  4003. ! #line 1136 "gram.y"
  4004.   {
  4005.           ioclause(IOSUNIT, ENULL);
  4006. !         ioclause(IOSFMT, yyvsp[0].expval);
  4007.           endioctl();
  4008. !         ;
  4009. !     break;}
  4010.   case 266:
  4011. ! #line 1142 "gram.y"
  4012.   {
  4013.           ioclause(IOSUNIT, ENULL);
  4014.           ioclause(IOSFMT, ENULL);
  4015.           endioctl();
  4016. !         ;
  4017. !     break;}
  4018.   case 267:
  4019. ! #line 1150 "gram.y"
  4020.   {
  4021. !           ioclause(IOSUNIT, yyvsp[-1].expval);
  4022.             endioctl();
  4023. !         ;
  4024. !     break;}
  4025.   case 268:
  4026. ! #line 1155 "gram.y"
  4027. ! { endioctl(); ;
  4028. !     break;}
  4029.   case 271:
  4030. ! #line 1163 "gram.y"
  4031. ! { ioclause(IOSPOSITIONAL, yyvsp[0].expval); ;
  4032. !     break;}
  4033.   case 272:
  4034. ! #line 1165 "gram.y"
  4035. ! { ioclause(IOSPOSITIONAL, ENULL); ;
  4036. !     break;}
  4037.   case 273:
  4038. ! #line 1167 "gram.y"
  4039. ! { ioclause(IOSPOSITIONAL, IOSTDERR); ;
  4040. !     break;}
  4041.   case 274:
  4042. ! #line 1169 "gram.y"
  4043. ! { ioclause(yyvsp[-1].ival, yyvsp[0].expval); ;
  4044. !     break;}
  4045.   case 275:
  4046. ! #line 1171 "gram.y"
  4047. ! { ioclause(yyvsp[-1].ival, ENULL); ;
  4048. !     break;}
  4049.   case 276:
  4050. ! #line 1173 "gram.y"
  4051. ! { ioclause(yyvsp[-1].ival, IOSTDERR); ;
  4052. !     break;}
  4053.   case 277:
  4054. ! #line 1177 "gram.y"
  4055. ! { yyval.ival = iocname(); ;
  4056. !     break;}
  4057.   case 278:
  4058. ! #line 1181 "gram.y"
  4059. ! { iostmt = IOREAD; ;
  4060. !     break;}
  4061.   case 279:
  4062. ! #line 1185 "gram.y"
  4063. ! { iostmt = IOWRITE; ;
  4064. !     break;}
  4065.   case 280:
  4066. ! #line 1189 "gram.y"
  4067.   {
  4068.           iostmt = IOWRITE;
  4069.           ioclause(IOSUNIT, ENULL);
  4070. !         ioclause(IOSFMT, yyvsp[-1].expval);
  4071.           endioctl();
  4072. !         ;
  4073. !     break;}
  4074.   case 281:
  4075. ! #line 1196 "gram.y"
  4076.   {
  4077.           iostmt = IOWRITE;
  4078.           ioclause(IOSUNIT, ENULL);
  4079.           ioclause(IOSFMT, ENULL);
  4080.           endioctl();
  4081. !         ;
  4082. !     break;}
  4083.   case 282:
  4084. ! #line 1205 "gram.y"
  4085. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, CHNULL); ;
  4086. !     break;}
  4087.   case 283:
  4088. ! #line 1207 "gram.y"
  4089. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, yyvsp[-2].chval); ;
  4090. !     break;}
  4091.   case 284:
  4092. ! #line 1211 "gram.y"
  4093. ! { yyval.tagval = (tagptr) yyvsp[0].expval; ;
  4094. !     break;}
  4095.   case 285:
  4096. ! #line 1213 "gram.y"
  4097. ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval,revchain(yyvsp[-3].chval)); ;
  4098. !     break;}
  4099.   case 286:
  4100. ! #line 1217 "gram.y"
  4101. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, CHNULL); ;
  4102. !     break;}
  4103.   case 287:
  4104. ! #line 1219 "gram.y"
  4105. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, CHNULL); ;
  4106. !     break;}
  4107.   case 289:
  4108. ! #line 1224 "gram.y"
  4109. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, mkchain((char *)yyvsp[-2].expval, CHNULL) ); ;
  4110. !     break;}
  4111.   case 290:
  4112. ! #line 1226 "gram.y"
  4113. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, mkchain((char *)yyvsp[-2].expval, CHNULL) ); ;
  4114. !     break;}
  4115.   case 291:
  4116. ! #line 1228 "gram.y"
  4117. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, mkchain((char *)yyvsp[-2].tagval, CHNULL) ); ;
  4118. !     break;}
  4119.   case 292:
  4120. ! #line 1230 "gram.y"
  4121. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, mkchain((char *)yyvsp[-2].tagval, CHNULL) ); ;
  4122. !     break;}
  4123.   case 293:
  4124. ! #line 1232 "gram.y"
  4125. ! { yyval.chval = mkchain((char *)yyvsp[0].expval, yyvsp[-2].chval); ;
  4126. !     break;}
  4127.   case 294:
  4128. ! #line 1234 "gram.y"
  4129. ! { yyval.chval = mkchain((char *)yyvsp[0].tagval, yyvsp[-2].chval); ;
  4130. !     break;}
  4131.   case 295:
  4132. ! #line 1238 "gram.y"
  4133. ! { yyval.tagval = (tagptr) yyvsp[0].expval; ;
  4134. !     break;}
  4135.   case 296:
  4136. ! #line 1240 "gram.y"
  4137. ! { yyval.tagval = (tagptr) yyvsp[-1].expval; ;
  4138. !     break;}
  4139.   case 297:
  4140. ! #line 1242 "gram.y"
  4141. ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, mkchain((char *)yyvsp[-3].expval, CHNULL) ); ;
  4142. !     break;}
  4143.   case 298:
  4144. ! #line 1244 "gram.y"
  4145. ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, mkchain((char *)yyvsp[-3].tagval, CHNULL) ); ;
  4146. !     break;}
  4147.   case 299:
  4148. ! #line 1246 "gram.y"
  4149. ! { yyval.tagval = (tagptr) mkiodo(yyvsp[-1].chval, revchain(yyvsp[-3].chval)); ;
  4150. !     break;}
  4151.   case 300:
  4152. ! #line 1250 "gram.y"
  4153. ! { startioctl(); ;
  4154. !     break;}
  4155. ! }
  4156. !    /* the action file gets copied in in place of this dollarsign */
  4157. ! #line 457 "/usr/local/lib/bison.simple"
  4158. !   yyvsp -= yylen;
  4159. !   yyssp -= yylen;
  4160. ! #ifdef YYLSP_NEEDED
  4161. !   yylsp -= yylen;
  4162. ! #endif
  4163. ! #if YYDEBUG != 0
  4164. !   if (yydebug)
  4165. !     {
  4166. !       short *ssp1 = yyss - 1;
  4167. !       fprintf (stderr, "state stack now");
  4168. !       while (ssp1 != yyssp)
  4169. !     fprintf (stderr, " %d", *++ssp1);
  4170. !       fprintf (stderr, "\n");
  4171. !     }
  4172. ! #endif
  4173. !   *++yyvsp = yyval;
  4174. ! #ifdef YYLSP_NEEDED
  4175. !   yylsp++;
  4176. !   if (yylen == 0)
  4177. !     {
  4178. !       yylsp->first_line = yylloc.first_line;
  4179. !       yylsp->first_column = yylloc.first_column;
  4180. !       yylsp->last_line = (yylsp-1)->last_line;
  4181. !       yylsp->last_column = (yylsp-1)->last_column;
  4182. !       yylsp->text = 0;
  4183. !     }
  4184. !   else
  4185. !     {
  4186. !       yylsp->last_line = (yylsp+yylen-1)->last_line;
  4187. !       yylsp->last_column = (yylsp+yylen-1)->last_column;
  4188. !     }
  4189. ! #endif
  4190. !   /* Now "shift" the result of the reduction.
  4191. !      Determine what state that goes to,
  4192. !      based on the state we popped back to
  4193. !      and the rule number reduced by.  */
  4194. !   yyn = yyr1[yyn];
  4195. !   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  4196. !   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  4197. !     yystate = yytable[yystate];
  4198. !   else
  4199. !     yystate = yydefgoto[yyn - YYNTBASE];
  4200. !   goto yynewstate;
  4201. ! yyerrlab:   /* here on detecting error */
  4202. !   if (! yyerrstatus)
  4203. !     /* If not already recovering from an error, report this error.  */
  4204. !     {
  4205. !       ++yynerrs;
  4206. ! #ifdef YYERROR_VERBOSE
  4207. !       yyn = yypact[yystate];
  4208. !       if (yyn > YYFLAG && yyn < YYLAST)
  4209. !     {
  4210. !       int size = 0;
  4211. !       char *msg;
  4212. !       int x, count;
  4213. !       count = 0;
  4214. !       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  4215. !       for (x = (yyn < 0 ? -yyn : 0);
  4216. !            x < (sizeof(yytname) / sizeof(char *)); x++)
  4217. !         if (yycheck[x + yyn] == x)
  4218. !           size += strlen(yytname[x]) + 15, count++;
  4219. !       msg = (char *) malloc(size + 15);
  4220. !       if (msg != 0)
  4221. !         {
  4222. !           strcpy(msg, "parse error");
  4223. !           if (count < 5)
  4224. !         {
  4225. !           count = 0;
  4226. !           for (x = (yyn < 0 ? -yyn : 0);
  4227. !                x < (sizeof(yytname) / sizeof(char *)); x++)
  4228. !             if (yycheck[x + yyn] == x)
  4229. !               {
  4230. !             strcat(msg, count == 0 ? ", expecting `" : " or `");
  4231. !             strcat(msg, yytname[x]);
  4232. !             strcat(msg, "'");
  4233. !             count++;
  4234. !               }
  4235. !         }
  4236. !           yyerror(msg);
  4237. !           free(msg);
  4238. !         }
  4239. !       else
  4240. !         yyerror ("parse error; also virtual memory exceeded");
  4241. !     }
  4242. !       else
  4243. ! #endif /* YYERROR_VERBOSE */
  4244. !     yyerror("parse error");
  4245. !     }
  4246. !   goto yyerrlab1;
  4247. ! yyerrlab1:   /* here on error raised explicitly by an action */
  4248. !   if (yyerrstatus == 3)
  4249. !     {
  4250. !       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  4251. !       /* return failure if at end of input */
  4252. !       if (yychar == YYEOF)
  4253. !     YYABORT;
  4254. ! #if YYDEBUG != 0
  4255. !       if (yydebug)
  4256. !     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  4257. ! #endif
  4258. !       yychar = YYEMPTY;
  4259. !     }
  4260. !   /* Else will try to reuse lookahead token
  4261. !      after shifting the error token.  */
  4262. !   yyerrstatus = 3;        /* Each real token shifted decrements this */
  4263. !   goto yyerrhandle;
  4264. ! yyerrdefault:  /* current state does not do anything special for the error token. */
  4265. ! #if 0
  4266. !   /* This is wrong; only states that explicitly want error tokens
  4267. !      should shift them.  */
  4268. !   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  4269. !   if (yyn) goto yydefault;
  4270. ! #endif
  4271. ! yyerrpop:   /* pop the current state because it cannot handle the error token */
  4272. !   if (yyssp == yyss) YYABORT;
  4273. !   yyvsp--;
  4274. !   yystate = *--yyssp;
  4275. ! #ifdef YYLSP_NEEDED
  4276. !   yylsp--;
  4277. ! #endif
  4278. ! #if YYDEBUG != 0
  4279. !   if (yydebug)
  4280. !     {
  4281. !       short *ssp1 = yyss - 1;
  4282. !       fprintf (stderr, "Error: state stack now");
  4283. !       while (ssp1 != yyssp)
  4284. !     fprintf (stderr, " %d", *++ssp1);
  4285. !       fprintf (stderr, "\n");
  4286. !     }
  4287. ! #endif
  4288. ! yyerrhandle:
  4289. !   yyn = yypact[yystate];
  4290. !   if (yyn == YYFLAG)
  4291. !     goto yyerrdefault;
  4292. !   yyn += YYTERROR;
  4293. !   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  4294. !     goto yyerrdefault;
  4295. !   yyn = yytable[yyn];
  4296. !   if (yyn < 0)
  4297. !     {
  4298. !       if (yyn == YYFLAG)
  4299. !     goto yyerrpop;
  4300. !       yyn = -yyn;
  4301. !       goto yyreduce;
  4302. !     }
  4303. !   else if (yyn == 0)
  4304. !     goto yyerrpop;
  4305. !   if (yyn == YYFINAL)
  4306. !     YYACCEPT;
  4307. ! #if YYDEBUG != 0
  4308. !   if (yydebug)
  4309. !     fprintf(stderr, "Shifting error token, ");
  4310. ! #endif
  4311. !   *++yyvsp = yylval;
  4312. ! #ifdef YYLSP_NEEDED
  4313. !   *++yylsp = yylloc;
  4314. ! #endif
  4315. !   yystate = yyn;
  4316. !   goto yynewstate;
  4317.   }
  4318. + #line 1252 "gram.y"
  4319. diff -c ORIG-src/makefile src/makefile
  4320. *** ORIG-src/makefile    Wed Apr 28 07:08:42 1993
  4321. --- src/makefile    Thu Nov 18 03:07:40 1993
  4322. ***************
  4323. *** 1,6 ****
  4324.   #    Makefile for f2c, a Fortran 77 to C converter
  4325.   
  4326. ! g = -g
  4327.   CFLAGS = $g
  4328.   SHELL = /bin/sh
  4329.   
  4330. --- 1,9 ----
  4331.   #    Makefile for f2c, a Fortran 77 to C converter
  4332.   
  4333. ! CC = gcc
  4334. ! YACC = bison -y
  4335. ! g = -O2
  4336.   CFLAGS = $g
  4337.   SHELL = /bin/sh
  4338.   
  4339. ***************
  4340. *** 8,16 ****
  4341.         expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \
  4342.         output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \
  4343.         parse_args.o niceprintf.o cds.o sysdep.o version.o
  4344. ! OBJECTS = $(OBJECTSd) malloc.o
  4345.   
  4346. ! all: xsum.out f2c
  4347.   
  4348.   f2c: $(OBJECTS)
  4349.       $(CC) $(LDFLAGS) $(OBJECTS) -o f2c
  4350. --- 11,23 ----
  4351.         expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \
  4352.         output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \
  4353.         parse_args.o niceprintf.o cds.o sysdep.o version.o
  4354. ! OBJECTS = $(OBJECTSd)
  4355. ! #malloc.o
  4356. ! .c.o:
  4357. !     $(CC) -c $(CFLAGS) $*.c
  4358.   
  4359. ! all: f2c
  4360.   
  4361.   f2c: $(OBJECTS)
  4362.       $(CC) $(LDFLAGS) $(OBJECTS) -o f2c
  4363. ***************
  4364. *** 17,27 ****
  4365.   
  4366.   gram.c:    gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h
  4367.       ( sed <tokdefs.h "s/#define/%token/" ;\
  4368. !         cat gram.head gram.dcl gram.expr gram.exec gram.io ) >gram.in
  4369. !     $(YACC) $(YFLAGS) gram.in
  4370.       echo "(expect 4 shift/reduce)"
  4371.       sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c
  4372. !     rm -f gram.in y.tab.c
  4373.   
  4374.   $(OBJECTSd): defs.h ftypes.h defines.h machdefs.h sysdep.h
  4375.   
  4376. --- 24,38 ----
  4377.   
  4378.   gram.c:    gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h
  4379.       ( sed <tokdefs.h "s/#define/%token/" ;\
  4380. !         cat gram.head gram.dcl gram.expr gram.exec gram.io ) >gram.y
  4381. !     $(YACC) $(YFLAGS) gram.y
  4382.       echo "(expect 4 shift/reduce)"
  4383.       sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c
  4384. !     rm -f gram.y y.tab.c
  4385. ! # -O2 is too much for my 4 meg Amiga :-(
  4386. ! gram.o: gram.c
  4387. !     $(CC) -c -O gram.c
  4388.   
  4389.   $(OBJECTSd): defs.h ftypes.h defines.h machdefs.h sysdep.h
  4390.   
  4391. diff -c ORIG-src/sysdep.c src/sysdep.c
  4392. *** ORIG-src/sysdep.c    Wed Apr 28 07:10:00 1993
  4393. --- src/sysdep.c    Wed Nov 17 12:16:04 1993
  4394. ***************
  4395. *** 40,45 ****
  4396. --- 40,48 ----
  4397.   #ifndef TMPDIR
  4398.   #ifdef MSDOS
  4399.   #define TMPDIR ""
  4400. + #endif
  4401. + #ifdef AMIGA
  4402. + #define TMPDIR "T:"
  4403.   #else
  4404.   #define TMPDIR "/tmp"
  4405.   #endif
  4406. ***************
  4407. *** 99,106 ****
  4408.       sprintf(p1_file, "%sf2c_p1f", t);
  4409.       sprintf(p1_bakfile, "%sf2c_p1fb", t);
  4410.       sprintf(sortfname, "%sf2c_sort", t);
  4411.   #else
  4412. !     int pid = getpid();
  4413.       sprintf(c_functions, "%s/f2c%d_func", tmpdir, pid);
  4414.       sprintf(initfname, "%s/f2c%d_rd", tmpdir, pid);
  4415.       sprintf(blkdfname, "%s/f2c%d_blkd", tmpdir, pid);
  4416. --- 102,118 ----
  4417.       sprintf(p1_file, "%sf2c_p1f", t);
  4418.       sprintf(p1_bakfile, "%sf2c_p1fb", t);
  4419.       sprintf(sortfname, "%sf2c_sort", t);
  4420. + #endif
  4421. + #ifdef AMIGA
  4422. +      int pid = getpid();
  4423. +     sprintf(c_functions, "%sf2c%d_func", tmpdir, pid);
  4424. +     sprintf(initfname, "%sf2c%d_rd", tmpdir, pid);
  4425. +     sprintf(blkdfname, "%sf2c%d_blkd", tmpdir, pid);
  4426. +     sprintf(p1_file, "%sf2c%d_p1f", tmpdir, pid);
  4427. +     sprintf(p1_bakfile, "%sf2c%d_p1fb", tmpdir, pid);
  4428. +     sprintf(sortfname, "%sf2c%d_sort", tmpdir, pid);
  4429.   #else
  4430. !      int pid = getpid();
  4431.       sprintf(c_functions, "%s/f2c%d_func", tmpdir, pid);
  4432.       sprintf(initfname, "%s/f2c%d_rd", tmpdir, pid);
  4433.       sprintf(blkdfname, "%s/f2c%d_blkd", tmpdir, pid);
  4434.